1

新しいフォーラム イベントを読み込んで HTML テーブルに追加するlivetickerのあるサイトがあります。

時間フィールドについては、各イベントの日時を ajax で読み込み (例: )、 jquery プラグイン cutetimeを介して人間が読める形式(例: 2013-02-15 17:28:03) に変換しています。22 minutes ago

CuteTime の問題は、最近のバージョン(2010 年以降) では、動的にロードされる AJAX データの処理に問題があることです。

の現在の解決策は少しうまくいくようです:

1.最初に ajax 呼び出しがフォーラム イベント全体を html テーブルとしてロードし、次に cutetime プラグインを割り当てます。

// initial load at page startup
$('#responsecontainer').load('./liveticker', {ajax:1}, function() {
    // convert datetime to readable date format
    $('.timestamp').cuteTime();
});

2.次に、30 秒ごとに新しいイベントをチェックし、ロードされたデータに毎回 cuteTime を割り当てます。

$('#responseEvents').load('./liveticker', {ajax:lastevent}, function() {
    // stuff...
    // convert datetime to readable date format
    $('.timestamp').cuteTime();
})

これは Firefox と Chrome で動作するようです。ただし、Internet Explorer 9 では、すべての$(.timestamp)要素に同じテキストが割り当てられます: just now.

このバグ/問題の解決策を知っている人はいますか?

--

注: cutetime サイトでajax に関するコメントを見つけました。そこの誰かが彼の回避策を述べました:

追加のフィールドを作成するためにアプリをハックする必要があったため、最初にすべての値をすべてのスパンにコピーしてから、cuteTime を呼び出します。

しかし、これが現在直面している Internet Explorer のバグに何らかの形で関連しているかどうかはわかりません...

4

1 に答える 1

1

AJAX 呼び出しではありませんでした。実際、(mysql の) 通常の日時形式を使用し、その形式を cutetime で変換しようとしました。

開発者のサイトを読んで、次の文に出くわしました。

タイムスタンプは有効な Date().parse 'able' 形式でなければなりません

としても:

cutetime 属性も有効なオブジェクト テキストも存在しない場合、タイムスタンプは「現在」であると見なされます。


ビンゴ!今、日時をISO8601日付形式サーバーサイトにフォーマットしています:

$timeCode = date("c", strtotime( $row['datetime'] ));

そして、この形式で日付を取得します。2013-02-17T15:26:21+01:00これは、すべてのブラウザーで js 変換に使用できます!

于 2013-02-17T14:32:54.087 に答える