2012-03-30 348 views
0

我有两个变量。 weekStartDate和startDate。他们基本上都持有相同的时间戳:Date.getTime()给出相同时间戳的两个不同值

this.startDate Date {Mon Mar 26 2012 00:00:00 GMT+0530 (IST)} 
this.weekStartDate Date {Mon Mar 26 2012 00:00:00 GMT+0530 (IST)} 

的问题是:当我尝试的getTime(),他们表现出略微不同的值:

this.startDate.getTime() 1332700200000 
this.weekStartDate.getTime() 1332700200506 

我怎样才能解决这一问题?

+2

用户'this.weekStartDate.setMilliseconds(0)'。 – Pointy 2012-03-30 14:14:12

+0

你能展示你如何实例化它们吗? – Nik 2012-03-30 14:18:00

回答

5

区别是506毫秒。当您在Date对象上调用toString()时,不会显示毫秒数,因此除非您比较数值,否则比秒更精确的任何内容都会被忽略。

到毫秒重置为0,使用方法:

this.weekStartDate.setMilliseconds(0); 
+0

是的。为什么?当两个时间戳完全一样?为什么会有差异? – amit 2012-03-30 14:15:26

+0

@amit他们不完全一样 - 问题是你只能看到数字时间戳表示的差异。 – 2012-03-30 14:16:53

+1

他们不完全一样。 weekStartDate是基于当前的日期和时间,对吗?该日期对象的毫秒数不会被重置,因此显示出506毫秒的差异。 – 2012-03-30 14:19:19

2

我认为毫秒是不同的。设置boths日期到零毫秒,则该日期将是相同的:

this.weekStartDate.setMilliseconds(0); 
this.startDate.setMilliseconds(0); 

编辑:该死的,我是慢

相关问题