Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript PM和AM之间的差异应为12小时格式_Javascript_Jquery_Date_Datetime - Fatal编程技术网

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日,具体取决于区域设置。