我有两个日期YYYY-MM-DD和ZZZZ-NN-EE

我怎么知道它们之间有多少秒呢?


当前回答

你可以简单地做。

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

其他回答

. 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

简单的方法:

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));

如果你的一个或两个日期都在未来,那么如果你想精确到秒,恐怕你就是SOL了。UTC时间有闰秒,只有在6个月之前才知道,所以任何比这更晚的日期都可能不准确几秒(在实践中,由于人们不经常更新他们的机器,您可能会发现未来的任何时间都有几秒的误差)。

这很好地解释了设计日期/时间库的理论,以及为什么会这样:http://www.boost.org/doc/libs/1_41_0/doc/html/date_time/details.html#date_time.tradeoffs

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

JavaScript日期对象参考

你可以简单地做。

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