首页 > web前端 > js教程 > 如何在 JavaScript 中准确计算两个日期时间之间的时差?

如何在 JavaScript 中准确计算两个日期时间之间的时差?

Patricia Arquette
发布: 2024-11-19 05:41:02
原创
660 人浏览过

How to Accurately Calculate the Time Difference Between Two Datetimes in JavaScript?

如何获取日期时间之间的时差

确定两个实例之间的时间差是各种编程场景中的一项基本任务。本文深入探讨了如何使用具体示例有效地计算这种差异。

考虑以下要求:

var now  = "04/09/2013 15:00:00";
var then = "04/09/2013 14:20:30";

//expected result:
"00:39:30"
登录后复制

最初,您可以尝试以下方法:

var now = moment("04/09/2013 15:00:00");
var then = moment("04/09/2013 14:20:30");

console.log(moment(moment.duration(now.diff(then))).format("hh:mm:ss"))
// outputs 10:39:30
登录后复制

然而,在这个例子中,结果中出现了意外的值“10”。这是因为 moment.duration 将现在与那时之间的差异转换为包含内部值(如毫秒)的对象。要将持续时间转换为时间间隔,您可以使用:

duration.get("hours") + ":" + duration.get("minutes") + ":" + duration.get("seconds")
登录后复制

这将产生所需的结果:“00:39:30。”

注意: 此方法仅适用于持续时间少于 24 小时的情况。对于更长的持续时间,您需要不同的方法。

var now  = "04/09/2013 15:00:00";
var then = "02/09/2013 14:20:30";

var ms = moment(now,"DD/MM/YYYY HH:mm:ss").diff(moment(then,"DD/MM/YYYY HH:mm:ss"));
var d = moment.duration(ms);
var s = Math.floor(d.asHours()) + moment.utc(ms).format(":mm:ss");

// outputs: "48:39:30"
登录后复制

在这种情况下,我们将时间差计算为毫秒,将其转换为持续时间对象 d,然后使用 UTC 时间对其进行格式化。这给了我们正确的结果,“48:39:30。”

或者,您可以使用 moment-duration-format 插件来简化格式化过程。

以上是如何在 JavaScript 中准确计算两个日期时间之间的时差?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板