使用momentJS添加小时似乎在12:00之后中断

时间:2019-05-15 23:47:42

标签: javascript angular time momentjs

我正在尝试在任何给定时间增加一定量的时间。可以说我有04:00的时间,我加了12.0h。我想得到16:00。

我正在尝试使用momentJS addsubtract方法来实现这一点,并且它可以工作,但是最多只能运行12h。 一些例子来说明这个问题:

  • 如果我有04:00并且加12h,我会得到04:00。
  • 如果我有10:00并且我加3h我会得到01:00
  • 如果我有12:00,我加1h我会得到01:00
  • 如果我有11:00并加1h我会得到12:00

代码:

const res = moment.utc('04:00', 'hh:mm').add(12, 'hours').format('hh:mm');

我希望以上记录为16:00,而不是04:00

感谢任何人的提前帮助!

1 个答案:

答案 0 :(得分:0)

这是因为您使用的格式字符串hh:mm带有小写字母。那使片刻吐出了12小时格式。如果要24小时制,则字母应为大写HH:mm。如果您要在格式字符串的末尾添加a,则会发现它会将其标记为4:00 pm(hh:mm a)。

here's a demo

// code for demo

const moment = require("moment");




const init = moment.utc('4:00', 'hh:mm');
const added = init.add(12, 'hours');


console.log(added);
console.log(added.format('hh:mm')); // 4:00
console.log(added.format('hh:mm a')); // 4:00 pm
console.log(added.format('HH:mm')); // 16:00

moment format docs