0
a = new Date('09-01-2013')
//Sun Sep 01 2013 00:00:00 GMT-0400 (EDT)

b = new Date('2013-09-01')
//Sat Aug 31 2013 20:00:00 GMT-0400 (EDT)

b < a
//true

Node.js repl、v0.10.12でこれを行いました

dateString の形式によって日付が異なるのはなぜですか?

両方の日付がローカル タイムゾーンで表示され、それらの値が明らかに同等ではないため、これがどのようにタイムゾーンに関連しているかわかりません。

4

1 に答える 1

1

問題は、異なるフォーマット/標準を使用しているため、異なる方法で解析されることですnew Date('09-01-2013')new Date('2013-09-01')

new Date('09-01-2013')期待どおりに解析され、結果は午前 0 時 (ローカル タイム ゾーン) になります。ただし、new Date('2013-09-01')は UTC 午前 0 時の ISO-8601 日付として解析され、UTC 午前 0 時は表示時にローカル タイムゾーンに変換されます (この場合、EDT は20:00:004 時間の差に反映されます)。

結論:YYYY/MM/DD頭痛を避けるために使用します。

于 2013-09-04T20:30:17.870 に答える