在moment.js中将数千秒转换为h:mm:ss

dis*_*his 2 javascript momentjs

我一直在浏览文档,但不确定自己在做什么错。我需要转换72002:00:00。看起来容易吗?一些尝试:

var duration = 7200;
var display = moment().seconds(duration).format("h:mm:ss");
Run Code Online (Sandbox Code Playgroud)

和...

var duration = 7200;
var display = moment.duration(duration, "seconds"); //can't chain on a format method?
Run Code Online (Sandbox Code Playgroud)

格式返回正确,但数字全都错误。如果持续时间为Math.round(7025.526)7025.526我会9:19:06回来。

如何将秒转换为h:mm:ss成功?

Guf*_*ffa 5

使用时moment().seconds(duration),它将采用当前日期和时间,然后将秒部分设置为该值(累积到分钟和小时内)。如果您在其他时间尝试,结果将会改变。

持续时间对象不能设置为日期格式,因为它根本不是日期。这是一个时间长度,没有任何定义的起点或终点。

要首先转换秒,请创建一个空的矩对象,它将是当前日期和时间0:00:00。然后,您可以设置秒数,这将花费数分钟和数小时。

您将要使用H而不是h格式化小时。这样可以避免少于一小时的时间,12:nn:nn而不是0:nn:nn

var duration = 7200;
var display = moment({}).seconds(duration).format("H:mm:ss");
Run Code Online (Sandbox Code Playgroud)