Javascript PM和AM之间的差异应为12小时格式
这是密码Javascript PM和AM之间的差异应为12小时格式,javascript,jquery,date,datetime,Javascript,Jquery,Date,Datetime,这是密码 var d1 = new Date("01/01/2007 " + in_time); var d2 = new Date("01/01/2007 " + out_time); var timeDiff = (d2 - d1) / 1000 / 60 / 60; timeDiff = Math.abs(timeDiff) 例外情况下午1:00中午12:00总计13小时[我需要总计11小时] 例如,进站时间为晚上8:00,出站时间为上午12:00 例外情
var d1 = new Date("01/01/2007 " + in_time);
var d2 = new Date("01/01/2007 " + out_time);
var timeDiff = (d2 - d1) / 1000 / 60 / 60;
timeDiff = Math.abs(timeDiff)
例外情况下午1:00中午12:00总计13小时[我需要总计11小时]
例如,进站时间为晚上8:00,出站时间为上午12:00
例外情况下午2:00中午12:00总计14小时[我需要总计10小时]
例外情况下午3:00中午12:00总计15小时[我需要总计9小时]
AM和PM之间的差异是正确的,但PM AM计算是24小时格式的,我希望它是12小时格式。以下是错误:
var d1 = new Date("01/01/2007 " + in_time);
var d2 = new Date("01/01/2007 " + out_time);
^
|
BUG
既然你假设日期是一样的,那就意味着无论你用什么时间计算,上午12点总是在之前。因此,计算是正确的。要解决这个问题,您只需记住,上午12点是指第二天第一个小时的第一秒钟。什么是
入时
和出时
?时间差与时间本身不一样。将问题集var d2更新为下一个日期与d1不一样。那么,为了获得所需的结果,我需要更改什么?@DON:对于上午12点,您应该将日期更改为第二天。我没有编写示例代码,因为我不确定应该是什么。我来自的地方应该是“02/01/2007”,也就是1月2日,但我担心javascript可能会将其解释为2月1日。@DON:更糟糕的是,可能是1月2日或2月1日,具体取决于区域设置。