使用 moment/JS 将时差转换为 HH:MM:SS

Convert Time difference into HH:MM:SS using moment/JS

我有一个 startTimeendTime,我需要根据它们创建一个倒计时,该倒计时将始终以 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)