我在“ 2017-07-11T05:02:36.207465”中有一个UTC字符串,我想一次递增地添加30秒,长度小于或等于1500(可以是任何长度)。

该循环的结果将存储在一个名为duration的数组中。

我想利用MomentJS完成格式化并添加30秒间隔。

这是我的初步代码:

var utcstring = "2017-07-11T05:02:36.207465";
var duration = [];

for (var i = 0; i < 1500; i++) {
    // moment(utcstring).format("h:mm:ss a");
    // moment.add(30, 's');
    // duration.push();
}

console.log(duration); // Should return: ["5:02:36 am", "5:03:06 am", "5:03:36 am", etc.]


感谢您的JavaScript和MomentJS知识!

最佳答案

您可以简单地:


使用moment.utc解析输入字符串
使用add加30秒
使用format将矩对象转换为所需格式


请注意,如Mutability指南中所述:


  Moment.js中的一下对象是可变的。这意味着加,减或设置之类的操作会更改原始矩对象。


这是一个工作示例:



var utcstring = "2017-07-11T05:02:36.207465";
var duration = [];

var m = moment.utc(utcstring);
for (var i = 0; i < 1500; i++) {
  duration.push( m.format("h:mm:ss a") );
  m.add(30, 's');
}

console.log(duration);

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>

09-15 13:21