2

timeago Jquery プラグインを使用して、「5 分前」などの文字列を出力しています。

プラグインは ISO 8601 日付形式を使用します。

コンソールで次のような Date オブジェクトがあります。

Sat Jun 15 2013 07:16:23 GMT+0530 (India Standard Time) 

それを ISO 8601 に変換するには、次のようにします。

date = date.toISOString();

コンソールには次のように表示されます。

2013-06-15T01:46:23Z

どうやら、タイムゾーンが UTC ( Z は UTC の略) に設定されているようです。すべてがローカル タイムゾーンではなく UTC になっているため、これは timeago プラグインを台無しにします。

私はこれを試しました:

Date.prototype.toISOStringfix = function() {
    function pad(n) { return n < 10 ? '0' + n : n }
    return this.getUTCFullYear() + '-'
        + pad(this.getUTCMonth() + 1) + '-'
        + pad(this.getUTCDate()) + 'T'
        + pad(this.getUTCHours()) + ':'
        + pad(this.getUTCMinutes()) + ':'
        + pad(this.getUTCSeconds()) + 'Z';
};

ただし、同じ結果が得られます。

なぜこれが起こるのですか?どうすれば修正できますか?

4

0 に答える 0