所以我有两个日期YYYY-MM-DD
和ZZZZ-NN-EE
我怎样才能知道它们之间有多少秒?
答案 0 :(得分:210)
我正在服用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 site
或者,如果您的日期采用javascript可以解析的格式
var dif = Date.parse(MM + " " + DD + ", " + YYYY) - Date.parse(NN + " " + EE + ", " + ZZZZ);
然后您可以使用该值作为毫秒的差异(我的示例中的dif具有相同的含义)
答案 1 :(得分:72)
只需减去:
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");
答案 2 :(得分:14)
如果您的某个或两个日期在将来,那么如果您想要第二个准确度,我恐怕您是SOL。 UTC时间有闰秒,直到它们发生前大约6个月才知道,因此任何超出该时间的日期可能会在几秒钟内不准确(实际上,由于人们不经常更新他们的机器,所以可能会发现将来的任何时间都会关闭几秒钟。
这给出了日期/时间库设计理论的一个很好的解释,为什么会这样:http://www.boost.org/doc/libs/1_41_0/doc/html/date_time/details.html#date_time.tradeoffs
答案 3 :(得分:5)
创建两个Date
个对象并在两者上调用valueOf()
,然后进行比较。
答案 4 :(得分:5)
你可以做到这一点。
var secondBetweenTwoDate = Math.abs((new Date().getTime() - oldDate.getTime()) / 1000);
答案 5 :(得分:4)
var a = new Date("2010 jan 10"),
b = new Date("2010 jan 9");
alert(
a + "\n" +
b + "\n" +
"Difference: " + ((+a - +b) / 1000)
);
答案 6 :(得分:2)
简便方法:
function diff_hours(dt2, dt1)
{
var diff =(dt2.getTime() - dt1.getTime()) / 1000;
diff /= (60 * 60);
return Math.abs(Math.round(diff));
}
function diff_minutes(dt2, dt1)
{
var diff =(dt2.getTime() - dt1.getTime()) / 1000;
diff /= (60);
return Math.abs(Math.round(diff));
}
function diff_seconds(dt2, dt1)
{
var diff =(dt2.getTime() - dt1.getTime()) / 1000;
return Math.abs(Math.round(diff));
}
function diff_miliseconds(dt2, dt1)
{
var diff =(dt2.getTime() - dt1.getTime());
return Math.abs(Math.round(diff));
}
dt1 = new Date(2014,10,2);
dt2 = new Date(2014,10,3);
console.log(diff_hours(dt1, dt2));
dt1 = new Date("October 13, 2014 08:11:00");
dt2 = new Date("October 14, 2014 11:13:00");
console.log(diff_hours(dt1, dt2));
console.log(diff_minutes(dt1, dt2));
console.log(diff_seconds(dt1, dt2));
console.log(diff_miliseconds(dt1, dt2));
答案 7 :(得分:-3)
在bash中:
bc <<< "$(date --date='1 week ago' +%s) - \
$(date --date='Sun, 29 Feb 2004 16:21:42 -0800' +%s)"
确实需要安装bc和gnu日期。
答案 8 :(得分:-10)
.Net提供TimeSpan类来为您做数学运算。
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