两个date之间有多less秒?

所以我有两个dateYYYY-MM-DD和ZZZZ-NN-EE

我怎么知道他们之间有多less秒?

我把YYYY&ZZZZ取为表示年份的整数值,MM&NN表示一年中的月份,DD&EE表示月份中的整数值。

 var t1 = new Date(YYYY, MM, DD, 0, 0, 0, 0); var t2 = new Date(ZZZZ, NN, EE, 0, 0, 0, 0); var dif = t1.getTime() - t2.getTime(); var Seconds_from_T1_to_T2 = dif / 1000; var Seconds_Between_Dates = Math.abs(Seconds_from_T1_to_T2); 

MDN网站是未来参考的便利来源

另外,如果你的date是javascript可以parsing的格式

 var dif = Date.parse(MM + " " + DD + ", " YYYY) - Date.parse(NN + " " + EE + ", " +ZZZZ); 

然后你可以使用该值作为毫秒差(在我的例子中dif有相同的含义)

只要减去:

 var a = new Date(); alert("Wait a few seconds, then click OK"); var b = new Date(); var difference = (b - a) / 1000; alert("You waited: " + difference + " seconds"); 

如果你的date中有一个或者两个都是将来的,那么恐怕你是SOL,如果你想要秒精度的话。 UTC时间有闰秒,直到它们发生之前大约6个月才知道,所以任何超过这个时间的date都可能是几秒钟不准确的(实际上,由于人们并没有经常更新他们的机器,可能会发现将来的任何时候都会closures几秒钟)。

这给出了devisedate/时间库的理论的一个很好的解释,以及为什么如此: http : //www.boost.org/doc/libs/1_41_0/doc/html/date_time/details.html#date_time.tradeoffs

创build两个Date对象并在两者上调用valueOf() ,然后比较它们。

JavaScriptdate对象参考

 var a = new Date("2010 jan 10"), b = new Date("2010 jan 9"); alert( a + "\n" + b + "\n" + "Difference: " + ((+a - +b) / 1000) ); 

你可以简单地做。

 var secondBetweenTwoDate = Math.abs((new Date().getTime() - oldDate.getTime()) / 1000); 

在bash中:

 bc <<< "$(date --date='1 week ago' +%s) - \ $(date --date='Sun, 29 Feb 2004 16:21:42 -0800' +%s)" 

它确实需要安装bc和gnudate。

.Net提供了TimeSpan类来为你做math。

 var time1 = new Date(YYYY, MM, DD, 0, 0, 0, 0) var time2 = new Date(ZZZZ, NN, EE, 0, 0, 0, 0) Dim ts As TimeSpan = time2.Subtract(time1) ts.TotalSeconds