new Date("2014 Aug 11")
为Mon Aug 11 2014 00:00:00 GMT+0100 (GMT Daylight Time)
提供了正确的,但
new Date("2014-08-11")
提供Mon Aug 11 2014 01:00:00 GMT+0100 (GMT Daylight Time)
。
为什么这两个日期有1小时的差异?
我试图减去2个日期,并期望结果为' 0'如果两个日期相同。但在我上面的例子中,它不是ZERO!
答案 0 :(得分:10)
the MDN在parse
函数(在Date
构造函数中解析is used)中解释了它的完整性:
给定日期字符串" 2014年3月7日",解析假设一个本地时区,但给定ISO格式,例如" 2014-03-07"它将假定UTC的时区。因此,使用这些字符串生成的Date对象将表示不同的时刻,除非系统设置了UTC的本地时区
GMT + 2中的人会看到2小时的差异。
如果您无法正确解析日期,并且您对作为输入的字符串类型有信心,则可能强制使用时区:
var date = new Date(str+" UTC");
答案 1 :(得分:0)
对于您的查询,您可以尝试这种新的Date()格式
新日期(“2014,08,11”)它将于2014年8月11日星期一00:00:00 GMT + 0100(GMT日光时间)。