【问题标题】:How to calculate time difference in 24 hour format across midnight如何计算午夜 24 小时格式的时差
【发布时间】:2019-12-06 18:27:16
【问题描述】:

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

【问题讨论】:

标签: javascript time format difference


【解决方案1】:

这样

小时

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"))

【讨论】:

【解决方案2】:

使用矩库。

类似

moment().subtract(1,'days').startOf('day').toString()

moment().subtract(1,'days').endOf('day').toString()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-28
    • 1970-01-01
    • 1970-01-01
    • 2020-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多