Javascript 使用矩/JS将时差转换为HH:MM:SS
我有一个Javascript 使用矩/JS将时差转换为HH:MM:SS,javascript,momentjs,Javascript,Momentjs,我有一个startTime和endTime,在此基础上,我需要创建一个倒计时,它将始终以HH:MM:SS格式显示 例如: var endTime=1601454312537//Wed Sep 30 2020 13:55:12 var startTime=1600417512537//2020年9月18日星期五13:55:12 var diff=结束时间-开始时间 var duration=时刻持续时间(diffTime*1000,'毫秒') 然后将差值传递给setInterval,其中 set
startTime
和endTime
,在此基础上,我需要创建一个倒计时,它将始终以HH:MM:SS
格式显示
例如:
var endTime=1601454312537//Wed Sep 30 2020 13:55:12
var startTime=1600417512537//2020年9月18日星期五13:55:12
var diff=结束时间-开始时间
var duration=时刻持续时间(diffTime*1000,'毫秒')
然后将差值传递给setInterval,其中
setInterval(()=>{
持续时间=时刻。持续时间(持续时间-间隔,'毫秒');
h=持续时间。小时(),
m=持续时间。分钟(),
s=持续时间。秒()
}, 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`
发布对我有效的解决方案-
您可以进一步拆分MinuteSeconds字符串
var minutesSeconds = moment.utc(totalMilliseconds).format("mm:ss")
var hours = Math.floor(moment.duration(totalMilliseconds).asHours())
console.log("HH:MM:SS",hours + ':' + minutesSeconds)
如果将其作为天传递,是否会导致代码中出现任何问题?类似于
h=duration.days()*24+duration.hours()
…?(这是否会让你在某个时候遇到DST的麻烦,我留给你去弄清楚。)@ShubhamSrivastava我需要在几个小时内显示它。即使它是24+,也没关系。看看这个;我宁愿使用countdown.js作为你链接中发布的@TasosBu解决方案。谢谢