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

Javascript 如何使用矩将iso-8601持续时间转换为秒?,javascript,node.js,momentjs,iso,Javascript,Node.js,Momentjs,Iso,我的iso-8601期限如下: PT15M51S 我想将持续时间转换为秒,这样我就可以将其存储在数据库中,并按持续时间排序等 以下是我迄今为止所做的尝试: var moment = require('moment'); var duration = 'PT15M51S'; var x = moment(duration, moment.ISO_8601); console.log(x.seconds()); 这将导致NaN您需要使用函数。另外,要以秒为单位获取总值,请使用而不是seconds

我的iso-8601期限如下:

PT15M51S
我想将持续时间转换为秒,这样我就可以将其存储在数据库中,并按持续时间排序等

以下是我迄今为止所做的尝试:

var moment = require('moment');
var duration = 'PT15M51S';
var x = moment(duration, moment.ISO_8601);
console.log(x.seconds());
这将导致
NaN

您需要使用函数。另外,要以秒为单位获取总值,请使用而不是
seconds()

就你而言:

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

听起来很有希望。我现在检查一下。错误TS2345:类型为“MomentBuiltInformation”的参数不能分配给类型为“DurationConstructor”的参数。类型“MomentBuiltInformation”不可分配给类型“Q”。momentjs很大。如果仅转换值,请改用此选项: