【问题标题】:How to convert iso-8601 duration to seconds using moment?如何使用时刻将 iso-8601 持续时间转换为秒?
【发布时间】:2015-07-04 21:35:42
【问题描述】:

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

PT15M51S

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

这是我目前尝试过的:

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

这会导致NaN

【问题讨论】:

标签: javascript node.js momentjs iso


【解决方案1】:

您需要使用moment.duration 函数。此外,要获得以秒为单位的总值,请使用 asSeconds() 而不是 seconds()

在你的情况下:

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

【讨论】:

  • 听起来很有希望。我现在就去看看。
  • 错误 TS2345:“MomentBuiltinFormat”类型的参数不可分配给“DurationConstructor”类型的参数。类型“MomentBuiltinFormat”不可分配给类型“Q”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-02
  • 2013-10-05
  • 2013-10-04
  • 1970-01-01
相关资源
最近更新 更多