使用 Moment.js(或不使用)到 HH:MM 的小时数

问题描述 投票:0回答:2

我有非常简单的问题,但找不到好的简单的 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")

有什么想法吗?

javascript momentjs
2个回答
20
投票

好的,我找到原因了。

"MM"
表示月,而不是分钟,即
"mm"
。小时的变化是由时区引起的,我们可以使用
utc
函数忽略它。最终的解决方案是:

moment.utc(hours*3600*1000).format('HH:mm')

0
投票
let hour = 8;

moment({ hour }).format('HH:mm')

// output: 08:00
© www.soinside.com 2019 - 2024. All rights reserved.