繁体   English   中英

JavaScript Date.getTime()格式问题

[英]Javascript Date.getTime() format problems

嗨,大家好。

我在这里有两个日期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 //

谁能解释我为什么这两个输出不同的值? “ /”或“-”是否会影响日期转换为时间的方式?

您可以将数字重新插入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中,带有斜线的那个被设​​置为时区加上(我认为是)我的时间偏移。 我知道这不是答案,但抱歉,我无法将其全部张贴在评论部分。

在这里给出解释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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM