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

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


当前回答

function parseDate(str) {
  const [dateStr, timeStr] = str.split(' ');
  const [m,d,y] = dateStr.split('/');
  const [h,min] = timeStr.split(':');
  const date = new Date(y,m,d,h,min,0, 0);
  
  return date;
}

const date1 = parseDate('28/6/2022 22:55');
const date2 = parseDate('28/6/2022 22:58');
const diffInSeconds = (date2 - date1) / 1000;

console.log(diffInSeconds)

其他回答

function parseDate(str) {
  const [dateStr, timeStr] = str.split(' ');
  const [m,d,y] = dateStr.split('/');
  const [h,min] = timeStr.split(':');
  const date = new Date(y,m,d,h,min,0, 0);
  
  return date;
}

const date1 = parseDate('28/6/2022 22:55');
const date2 = parseDate('28/6/2022 22:58');
const diffInSeconds = (date2 - date1) / 1000;

console.log(diffInSeconds)

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

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

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

减:

var a = new Date(); 警报(“等待几秒钟,然后点击确定”); var b = new Date(); Var差= (b - a) / 1000; console.log("You waiting: " + difference + " seconds");