繁体   English   中英

Moment.js - 在同一小时内添加分钟到最后一分钟的结果

[英]Moment.js - Adding minute to last minute of hour results in same hour

我目前正在尝试使用 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 的错误还是预期行为? 如果这是预期的行为,那么我如何在下一小时内正确地将其发送到 go。

在美国,夏令时于 2019 年 11 月 3 日凌晨 2 点结束。

您在凌晨 1:59 添加一分钟时看到的行为不是错误,而是当时实际发生的情况。 该计算基于您当前的时区,因此 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/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM