我有非常简单的问题,但找不到好的简单的 DRY 解决方案。我想将小时数转换为
HH:MM
格式。我对 Moment.js 的尝试是:
var hours = 10.5
var hour_string = moment(hours*3600*1000).format('HH:MM')
但不幸的是我得到:
"11:01"
并且不知道为什么。当然我想要的结果是
"10:30"
.
我想用最简单的方式来做,就像我在 Rails 中所做的那样:
Time.at(hours*3600).utc.strftime("%H:%M")
有什么想法吗?
好的,我找到原因了。
"MM"
表示月,而不是分钟,即 "mm"
。小时的变化是由时区引起的,我们可以使用 utc
函数忽略它。最终的解决方案是:
moment.utc(hours*3600*1000).format('HH:mm')
let hour = 8;
moment({ hour }).format('HH:mm')
// output: 08:00