如何使用 moment 将 iso-8601 持续时间转换为秒数?

How to convert iso-8601 duration to seconds using moment?

我有一个 iso-8601 持续时间如下:

PT15M51S

我想将持续时间转换为 以便我可以将其存储在数据库中并按持续时间等排序

这是我到目前为止尝试过的方法:

var moment = require('moment');
var duration = 'PT15M51S';
var x = moment(duration, moment.ISO_8601);
console.log(x.seconds());

这导致 NaN

您需要使用 moment.duration function. Also, to get the total value in seconds, use asSeconds() 而不是 seconds()

你的情况:

var moment = require('moment');
var duration = 'PT15M51S';
var x = moment.duration(duration, moment.ISO_8601);
console.log(x.asSeconds()); // => 951