我始终将分钟记录为纯字符串格式,即“90”,持续90分钟。我想将其转换为schema.org标准的ISO 8601持续时间格式。
例如,“90”应转换为PT1H30M
最佳答案
如果要读取的时间间隔对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));
输出: