怎么计算跨天的间隔小时数?

计算两个时间的间隔小时数,例如18:30-4:00
计算当天18:30到次日4:00间隔了几个小时怎么计算?

阅读 4.2k
6 个回答
// 获取时间戳
let end = new Date('2023-01-04 18:30').getTime()
let start = new Date('2023-01-03 04:00').getTime()

// 一个小时是 3600000 毫秒
// (end - start) / 3600000 得出多少小时, 为小数
// 可根据需要选择是否取整
let hour = parseInt((end - start) / 3600000)

无论跨几天,都以今天一个基准时间为基准,给个日期。两个Date对象相减获取秒数。

date1 = new Date(0, 1, 1, 18, 30, 0, 0);// 1900年1月1号
date2 = new Date(0, 1, 2, 4, 00, 0, 0);

date2.getTime() - date1.getTime()// 相差毫秒数 

(间隔天数*24 + 结束时间) - 开始时间

前端的话使用moment或者dayjs。

moment('2023-01-04 18:30').diff(moment('2023-01-05 04:30'), 'h')
// -5

日期要带上可以默认当前日期,如果结束时间比开始时间小,那么结束时间+1天再比较。

let starttime = 18:30;
let endtime = 4:00;
let intervalhours = 24 - starttime.split(':')[0] - (starttime.split(':')[1]/60).toFixed(4) + endtime.split(':')[0] + (endtime.split(':')[1]/60).toFixed(4)
新手上路,请多包涵

两个Date类型的值相减,得到相差的毫秒数值,毫秒数再转换成小时取整

推荐问题