控制台输出:
new Date(2016, 08, 22)
Thu Sep 22 2016 00:00:00 GMT+0200 (CEST)
new Date("2016, 08, 22")
Mon Aug 22 2016 00:00:00 GMT+0200 (CEST)
不同的月份但为什么?
答案 0 :(得分:7)
Javascript月份在数字情况下为0,但在字符串中,解析08映射到August,因为它是标准日期格式的“August”的字符串转换。
正如DataExtension
>> new Date(2016, 08, 22)
>> Thu Sep 22 2016 00:00:00 GMT+0530 (IST)
>> new Date(2016, 01, 22)
>> Mon Feb 22 2016 00:00:00 GMT+0530 (IST)
>> new Date(2016, 0, 22)
>> Fri Jan 22 2016 00:00:00 GMT+0530 (IST)
>> new Date("2016-08-22")
>> Mon Aug 22 2016 05:30:00 GMT+0530 (IST)
>> new Date("2016/08/22")
>> Mon Aug 22 2016 00:00:00 GMT+0530 (IST)
被调用
在你的情况下,3&正在调用4种格式。
{{1}}
...完全解析ISO 8601扩展格式以外的字符串 依赖于实现。解析“2016,08,22”的结果可能是任何内容,包括无效的日期。
答案 1 :(得分:2)
您使用的第二个Date
构造函数旨在解析日期的(已知)字符串表示形式,如"Dec 25, 1995"
。您传入的格式不是标准格式,因此即使结果接近正确的日期(并且可以通过更正月份值来修复,如DhruvPathak所指出的),也不应该将其用作结果我的不同取决于在运行时/浏览器上。