JavaScript日期中"01"和"1"之间的差异

Nac*_*cho 23 javascript

JavaScript中2015-10-01'和'2015-10-1'的日期有何不同?

new Date('2015-10-1')
Run Code Online (Sandbox Code Playgroud)

这回来了 'Thu Oct 01 2015 00:00:00 GMT-0300'

new Date('2015-10-01')
Run Code Online (Sandbox Code Playgroud)

返回 'Wed Sep 30 2015 21:00:00 GMT-0300'

raj*_*uGT 22

我在本地执行后看到的是

  • 本地时区的日期
  • UTC日期

根据MDN文档,Date.parse如果日期完整,则将日期设置为UTC格式,DD否则它将采用本地时区格式.


关于月变化的详细说明:(评论)

new Date('2015-10-1')当您执行此语句时,输出为'Thu Oct 01 2015 00:00:00 GMT-0300'.即它是您当地的时间,它是GMT -3小时.

但是当你执行new Date('2015-10-01')输出时是'Wed Sep 30 2015 21:00:00 GMT-0300',这是UTC时间.即3小时减去您当地时间.

所以它是10月1日午夜3点,这是前一天的21小时.即9月30日21小时.

  • 很好找.这太奇怪了,野生动物园更严格,不允许.所以这是供应商特定的事情. (2认同)

Ser*_*sev 6

来自文档:

new Date(dateString)
Run Code Online (Sandbox Code Playgroud)

dateString

表示RFC2822或ISO 8601日期的字符串(可以使用其他格式,但结果可能是意外的).

'2015-10-1'既不是受支持的格式,并且正如所承诺的那样,您会得到意想不到的结果(而且'2015-10-01'是有效的ISO 8601日期).

  • @Nacho:处理日期和时区总是很痛苦,即使是退伍军人:) (2认同)