Javascript 2014-08-19

时间:2014-02-19 04:17:53

标签: javascript date

有谁知道为什么2014年8月19日在Javascript中返回2014年8月18日这一天?

> new Date(2014, 9, 18)
Sat Oct 18 2014 00:00:00 GMT-0300 (BRT)
> new Date(2014, 9, 19)
Sat Oct 18 2014 23:00:00 GMT-0300 (BRT)
> new Date(2014, 9, 20)
Mon Oct 20 2014 00:00:00 GMT-0200 (BRST)

1 个答案:

答案 0 :(得分:1)

Date(2014, 9, 19)技术上 does not exist in parts of Brazil 。首先,注意Date()不仅返回日期,还返回日期时间。时间违约到午夜,因为没有明确通过。但是,夏令时节省时间意味着2014年10月19日午夜被跳过。 (10月18日23:59:59之后是10月19日 1:00:00

我猜JavaScript试图将这个不存在的日期时间转换为实际存在的有效日期时间。如果您只对日期感兴趣,可以通过以下方式明确传递小时参数:

> new Date(2014, 9, 19, 12)