以Javascript / Angular创建ISO 8601持续时间

问题描述 投票:0回答:1

[我将如何在JavaScript中创建持续时间,然后将其格式化为ISO 8601持续时间,例如2分30秒将为“ PT2M30S”。

可以用$ interval完成吗?还是可以通过Date()。getTime()实现?

我需要进行互动以跟踪所花费的时间,所以我会在开始或互动时获得日期,然后在结束时再次获取日期,彼此相减然后格式化为ISO 8601吗?努力寻找正确的语法或有用的库。

javascript angularjs iso8601
1个回答
0
投票

Moment是一个非常流行的JavaScript日期处理库,它能够格式化ISO8601中的持续时间。这是一个示例,该示例说明如何首先计算两个日期之间的差异,然后根据该差异生成持续时间字符串。

var first = moment("2015-10-01"),
  second = moment("2015-10-02");

console.log(moment.duration(second.diff(first), "ms").toISOString());
// "PT24H"
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.26.0/moment.min.js"></script>

查看documentation for duration formatting了解更多详细信息。

© www.soinside.com 2019 - 2024. All rights reserved.