如何计算午夜24小时格式的时差

时间:2019-12-06 18:27:16

标签: javascript time format difference

我正在以24小时格式计算两次时间之间的时差。在这里,我有一种情况,开始时间是22,是晚上10点,结束时间是6,是另一天的早上6点。我正在尝试是否初始时间大于(24-开始时间)+结束时间的结束时间。但是在像hh:mm这样的时间情况下,通过忽略秒数来精确地做到这一点。

2 个答案:

答案 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()