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

时间:2015-04-26 14:11:08

标签: javascript node.js momentjs iso

我的iso-8601持续时间如下:

int delay = 1000; //milliseconds   
ActionListener taskPerformer = new ActionListener() {
       public void actionPerformed(ActionEvent evt) {
           //...Perform a task...
       }   
};   
new Timer(delay, taskPerformer).start();

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

这是我到目前为止所尝试的内容:

PT15M51S

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

1 个答案:

答案 0 :(得分:6)

您需要使用moment.duration功能。另外,要以秒为单位获取总值,请使用asSeconds()代替seconds()

在你的情况下:

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