两个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