嗨,大家好,这只是烦我。
我这里有两个日期w / c是相同的但是格式不同。
var date1 = new Date('1985-04-15'); //April 04, 1985
var date2 = new Date('04/15/1985'); //April 04, 1985
现在的问题是将这两个转换为"时间"
date1.getTime() would output 482371200000 //
date2.getTime() would output 482342400000 //
任何人都可以解释为什么这两个输出不同的值?是" /"或" - "会影响日期转换为时间的方式吗?
答案 0 :(得分:1)
您可以将数字插回到Date构造函数中,以查看它生成的日期,如下所示:
new Date('1985-04-15').getTime();
482371200000
new Date('04/15/1985').getTime()
482335200000
new Date(482335200000)
Mon Apr 15 1985 00:00:00 GMT+1000 (AUS Eastern Standard Time)
new Date(482371200000)
Mon Apr 15 1985 10:00:00 GMT+1000 (AUS Eastern Standard Time)
因此,出于某些原因,在Chrome中,带有斜杠的那个被设置为时区加上(我假设的)我的时间偏移量。我知道这不是答案,但我无法在评论部分发布所有内容。
答案 1 :(得分:0)
这里给出解释https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse
如果未在输入字符串中指定时区,则 new Date()
或Date.parse()
采用时区。对于某些字符串格式,假设可能是错误的。
您始终可以使用Date.UTC
获取UTC时间var date1 = new Date('1985-04-15'); //April 04, 1985
var date2 = new Date('04/15/1985'); //April 04, 1985
现在不使用date1.getTime()
使用Date.UTC
Date.UTC(date1.getFullYear(), date1.getMonth(), date1.getDate()) //482371200000
Date.UTC(date2.getFullYear(), date2.getMonth(), date2.getDate()) //482371200000