将分钟(字符串)转换为ISO 8601持续时间格式

3

我经常将我的分钟数以 "90" 的普通字符串格式存储。我想将其转换为ISO 8601持续时间格式,以符合schema.org标准。

例如, "90" 应该被转换为 PT1H30M。


1
如果这样更容易理解,"PT90M" 是符合 ISO 8601 标准的。 - Andrew Morton
你想用原生JavaScript完成还是可以使用库? - VLAZ
@vlaz 原生/ES6 或 Moment.js - Joelgullander
1个回答

10

如果要读取的间隔值不支持类似于PT90M这样的格式,您可以使用以下方法:

function MinutesToDuration(s) {
    var days = Math.floor(s / 1440);
    s = s - days * 1440;
    var hours = Math.floor(s / 60);
    s = s - hours * 60;

    var dur = "PT";
    if (days > 0) {dur += days + "D"};
    if (hours > 0) {dur += hours + "H"};
    dur += s + "M"

    return dur;
}

console.log(MinutesToDuration("0"));
console.log(MinutesToDuration("10"));
console.log(MinutesToDuration("90"));
console.log(MinutesToDuration(1000));
console.log(MinutesToDuration(10000));

输出:

0分钟
10分钟
1小时30分钟
16小时40分钟
6天22小时40分钟


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接