我一直在看文档,但我不确定我做错了什么。我需要将7200
转换为2:00:00
。看起来很简单?以下是一些尝试:
var duration = 7200;
var display = moment().seconds(duration).format("h:mm:ss");
还有..。
var duration = 7200;
var display = moment.duration(duration, "seconds"); //can't chain on a format method?
格式返回正确,但数字都是错误的。如果我使用Math.round(7025.526)
或7025.526
作为持续时间,我会得到9:19:06
。
如何成功将seconds转换为h:mm:ss
?
发布于 2015-09-28 08:17:50
当您使用moment().seconds(duration)
时,它将获取当前日期和时间,然后将秒组件设置为该值(溢出为分钟和小时)。如果你在不同的时间尝试它,你会看到结果发生了变化。
持续时间对象不能格式化为日期,因为它根本不是日期。这是一段时间长度,没有任何定义的起点或终点。
要转换秒,首先创建一个空的moment对象,它将是当前日期和时间0:00:00。然后,您可以设置秒数,它将溢出到分钟和小时。
您可能希望使用H
而不是h
来设置小时数的格式。这就避免了以12:nn:nn
而不是0:nn:nn
的形式获取少于一小时的时间
var duration = 7200;
var display = moment({}).seconds(duration).format("H:mm:ss");
发布于 2015-09-28 07:36:43
let duration = seconds;
let hours = duration/3600;
duration = duration % (3600);
let min = parseInt(duration/60);
duration = duration % (60);
let sec = parseInt(duration);
if (sec < 10) {
sec = `0${sec}`;
}
if (min < 10) {
min = `0${min}`;
}
if (parseInt(hours, 10) > 0) {
return (`${parseInt(hours, 10)} : ${min} : ${sec}`)
}
return (`${min} : ${sec}`)
您可以通过计算小时、分钟和秒来手动完成
发布于 2015-09-28 08:36:38
使用moment-duration-format plugin
var s = moment.duration(ms).format("h:mm:ss");
或者,只使用moment:
var d = moment.duration(ms);
var s = Math.floor(d.asHours()) + moment.utc(ms).format(":mm:ss");
https://stackoverflow.com/questions/32813903
复制相似问题