我正在以24小时格式计算两次时间之间的时差。在这里,我有一种情况,开始时间是22,是晚上10点,结束时间是6,是另一天的早上6点。我正在尝试是否初始时间大于(24-开始时间)+结束时间的结束时间。但是在像hh:mm这样的时间情况下,通过忽略秒数来精确地做到这一点。
答案 0 :(得分:0)
赞
小时
const diff = (s, e) => s > e ? Math.abs(s - 24 - e) : e - s;
console.log(diff(22, 6))
console.log(diff(6, 22))
HH:MM
const pad = num => ("0" + num).slice(-2);
const diff = (s, e) => {
const [shh, smm] = s.split(":");
const [ehh, emm] = e.split(":");
const smin = +smm + (60 * shh);
const emin = +emm + (60 * ehh);
let mDiff = s > e ? Math.abs(smin - (24 * 60) - emin) : emin - smin;
let hours = Math.floor(mDiff / 60);
let minutes = mDiff % 60;
return pad(hours) + ":" + pad(minutes)
}
console.log(diff("22:03", "06:04"))
console.log(diff("06:04", "22:03"))
答案 1 :(得分:-1)
使用时刻库。
类似
moment()。subtract(1,'days')。startOf('day')。toString()
moment()。subtract(1,'days')。endOf('day')。toString()