Moment.js-将小时数添加到小时的最后一分钟

时间:2019-10-27 20:51:14

标签: javascript momentjs

我当前正在尝试使用moment.js(2.24.0)在一小时的最后一分钟内增加一分钟。但是,它会返回到同一小时的第一分钟。

这是示例代码:

  var minute = '2019-11-03 01:59:00';
  console.log('Before: '+minute);
  minute = moment(minute, 'YYYY-MM-DD HH:mm:ss')
    .add(1, 'minutes')
    .format('YYYY-MM-DD HH:mm:00');
  console.log('After: '+minute);

结果是:

Before: 2019-11-03 01:59:00
After: 2019-11-03 01:00:00

这是moment.js的错误或预期行为吗?如果这是预期的行为,那么如何正确解决该问题,直到下一个小时。

1 个答案:

答案 0 :(得分:2)

在美国,夏令时将于2019-11-03凌晨2点结束。

您在1:59 AM上添加一分钟时看到的行为不是错误,而是当时的实际情况。该计算是基于您当前的时区,因此2019-11-03 01:59:00 EDT(东部夏令时)+1分钟= 2019-11-03 01:00:00 EST(东部标准时间)。

如果要在2:59而不是1:59进行相同的测试,它将按预期增加。您可以指定自己实际上是美国东部标准时间上午1:59,但请确保在尝试之前确实如此。

其他阅读:https://momentjs.com/timezone/docs/#/using-timezones/parsing-ambiguous-inputs/