使用 moment/JS 将时差转换为 HH:MM:SS
Convert Time difference into HH:MM:SS using moment/JS
我有一个 startTime
和 endTime
,我需要根据它们创建一个倒计时,该倒计时将始终以 HH:MM:SS
格式显示。
例如:
var endTime = 1601454312537 // Wed Sep 30 2020 13:55:12
var startTime = 1600417512537 // Fri Sep 18 2020 13:55:12
var diff = endTime - startTime
var duration = moment.duration(diffTime * 1000, 'milliseconds')
然后将差值传递给 setInterval,
setInterval(() => {
duration = moment.duration(duration - interval, 'milliseconds');
h = duration.hours(),
m = duration.minutes(),
s = duration.seconds()
}, 1000);
这给了我正确的时间,但是当它超过 24 小时时,一天就过去了。
有什么办法可以将所有差异保留为 HH:MM:SS 格式?
有没有矩函数可以限制到小时、分钟、秒?
这是我使用的一个不需要 momentjs
的函数,在 momentjs
中也没有直接的方法:
// Duration in seconds
const durationString = duration =>
`${
Math.floor(duration / 60) > 9 ? Math.floor(duration / 60) : `0${Math.floor(duration / 60)}`
} m ${duration % 60 > 9 ? Math.round(duration % 60) : `0${Math.round(duration % 60)}`}s`
发布对我有用的解决方案 -
您可以进一步拆分分秒字符串。
var minutesSeconds = moment.utc(totalMilliseconds).format("mm:ss")
var hours = Math.floor(moment.duration(totalMilliseconds).asHours())
console.log("HH:MM:SS",hours + ':' + minutesSeconds)
我有一个 startTime
和 endTime
,我需要根据它们创建一个倒计时,该倒计时将始终以 HH:MM:SS
格式显示。
例如:
var endTime = 1601454312537 // Wed Sep 30 2020 13:55:12
var startTime = 1600417512537 // Fri Sep 18 2020 13:55:12
var diff = endTime - startTime
var duration = moment.duration(diffTime * 1000, 'milliseconds')
然后将差值传递给 setInterval,
setInterval(() => {
duration = moment.duration(duration - interval, 'milliseconds');
h = duration.hours(),
m = duration.minutes(),
s = duration.seconds()
}, 1000);
这给了我正确的时间,但是当它超过 24 小时时,一天就过去了。 有什么办法可以将所有差异保留为 HH:MM:SS 格式? 有没有矩函数可以限制到小时、分钟、秒?
这是我使用的一个不需要 momentjs
的函数,在 momentjs
中也没有直接的方法:
// Duration in seconds
const durationString = duration =>
`${
Math.floor(duration / 60) > 9 ? Math.floor(duration / 60) : `0${Math.floor(duration / 60)}`
} m ${duration % 60 > 9 ? Math.round(duration % 60) : `0${Math.round(duration % 60)}`}s`
发布对我有用的解决方案 -
您可以进一步拆分分秒字符串。
var minutesSeconds = moment.utc(totalMilliseconds).format("mm:ss")
var hours = Math.floor(moment.duration(totalMilliseconds).asHours())
console.log("HH:MM:SS",hours + ':' + minutesSeconds)