【问题标题】:How to get the number of seconds between two dates in javascript?如何在javascript中获取两个日期之间的秒数?
【发布时间】:2019-08-07 12:40:23
【问题描述】:

我试图在 javascript 中获取两个日期之间的秒数。
问题herehere 建议使用简单的减法运算即可解决问题,其他答案建议您使用.getTime().valueOf() 属性。
但是尽管如此,当我减去两个相隔 5 秒的日期时,我得到的值 1551181475795 太大而无法正确。
这是我的代码:

var countDownDate = new Date("Mar 16, 2019 16:33:25").valueOf();
var dist = 347155200;
// Update the count down every 1 second
var x = setInterval(function() {

  // Get todays date and time
  var now = new Date("Mar 16, 2019 16:33:30");

  // Find the distance between now and the count down date
  var distance = Math.abs(now - countDownDate / 1000);
  // Display the result in the element with id="demo"
  document.getElementById("demo").innerHTML = distance;

  // If the count down is finished, write some text
  if (distance < 0) {
    clearInterval(x);
    document.getElementById("demo").innerHTML = "EXPIRED";
  }
}, 1000);
&lt;p id='demo'&gt;

如您所见,这两个时间仅相差 5 秒,但将它们分开的值没有意义。
提前致谢!

【问题讨论】:

  • 你为什么要把countDownDate除以1000?

标签: javascript


【解决方案1】:

这是操作顺序的问题,在进行减法之前,您将 countDownDate 除以 1000(您正在计算 now - countDownDate / 1000 但是,您应该计算 (now - countDownDate) / 1000,首先是减法):

var countDownDate = new Date("Mar 16, 2019 16:33:25").valueOf();
var dist = 347155200;
// Update the count down every 1 second
var x = setInterval(function() {

  // Get todays date and time
  var now = new Date("Mar 16, 2019 16:33:30");

  // Find the distance between now and the count down date
  var distance = Math.abs((now - countDownDate) / 1000);
  // Display the result in the element with id="demo"
  document.getElementById("demo").innerHTML = distance;

  // If the count down is finished, write some text
  if (distance < 0) {
    clearInterval(x);
    document.getElementById("demo").innerHTML = "EXPIRED";
  }
}, 1000);
&lt;p id="demo"&gt;&lt;/p&gt;

【讨论】:

  • 非常感谢,我觉得我应该抓住它!
【解决方案2】:

正如您所研究的,您可以简单地从较旧的日期中减少较新的日期,这会返回两个日期之间的毫秒数。

除以 1000 秒数。

let start = new Date("Mar 16, 2019 16:33:25")
let end = new Date("Mar 16, 2019 16:33:30");
let secondsBetween = (end - start) / 1000;
console.log("without value of:", secondsBetween, "seconds")

start = new Date("Mar 16, 2019 16:33:25").valueOf()
end = new Date("Mar 16, 2019 16:33:30").valueOf()
secondsBetween = (end - start) / 1000;

console.log("using value of:",(end - start) / 1000, "seconds")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-23
    • 2010-12-03
    • 2015-06-18
    • 2020-05-11
    • 1970-01-01
    • 2020-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多