0
var dt = new Date("2012-04-23T12:00:00");

var dtz = new Date("2012-04-23T12:00:00Z");

Zが存在する場合、私は別の時間を取得します。

Zが存在する場合、それは日付をブラウザーの現地時間に変換し、存在しない場合は、すでに現地時間にあると想定しますか?

FFではChromeとは異なる結果が得られます。Chromeは常に同じ時間を与えてくれます。FFはそれらを異なるものとして扱います。サーバーからのUTC日付をどのように処理する必要がありますか?

4

3 に答える 3

2

「Z」は、UT(別名UTC、別名GMT)に対応する軍用タイムゾーンです。つまり、基本的に、「nnn Z」は、「グリニッジの「nnn」のタイムゾーンでどれくらい遅いか」を意味します。たとえば、私はGMT + 2のCESTにいるので、これは

new Date("2012-04-23T12:00:00Z")

私のために返します:

Mon Apr 23 2012 14:00:00 GMT+0200 (CEST)

TZ指定子を使用した日付に関しては、Firefox(ローカルTZを想定)とChrome(UTCを想定)では処理が異なるようです。安全のために、常に明示的なTZ指定子を使用することをお勧めします。

于 2012-04-24T17:52:35.173 に答える
1
var dt = new Date("2012-04-23T12:00:00");

var dtz = new Date("2012-04-23T12:00:00Z");

alert()で試して、これらのメッセージを受け取りました

alert(dt);

 Mon Apr 23 2012 12:00:00 GMT+0500 (West Asia Standard Time)

alert(dtz);

Mon Apr 23 2012 17:00:00 GMT+0500 (West Asia Standard Time)

これは、「Z」なしで日付を作成すると、ブラウザのGMTでの現地時間を返し、タイムゾーンがGMTより下または上であることを示します。

「Z」で作成すると、タイムゾーンを参照してタイムゾーンの現地時間が表示されます。

于 2012-04-24T17:45:36.347 に答える
0

ISO 8601によると、UTC関係情報が時間表現で指定されていない場合、時間は現地時間であると見なされます。

Firefox、Safari、InternetExplorerの両方で正しい動作を確認できる場合:

以下が返されます:false

new Date("2014-05-09T22:12:18.893Z").valueOf() === new Date("2014-05-09T22:12:18.893").valueOf()

ChromeまたはOperaで同じことを試してみると、正しくないことを示します:true

話の教訓は、上記の形式の文字列がある場合は、最後にZを追加することです。

于 2014-05-09T22:14:35.320 に答える