Javascript 如何计算时间和日期之间的时差

Javascript 如何计算时间和日期之间的时差,javascript,datetime,Javascript,Datetime,我在计算两个小时之间的时间 var timeDiff = Math.abs(datetime.getTime() - now.getTime()); var diffHours = Math.ceil(timeDiff / (1000 * 3600)); 但从下午到上午是个问题 var timeDiff = Math.abs(datetime.getTime() - now.getTime()); var diffHours = Math.ceil(timeDiff / (1000 * 36

我在计算两个小时之间的时间

var timeDiff = Math.abs(datetime.getTime() - now.getTime());
var diffHours = Math.ceil(timeDiff / (1000 * 3600)); 
但从下午到上午是个问题

var timeDiff = Math.abs(datetime.getTime() - now.getTime());
var diffHours = Math.ceil(timeDiff / (1000 * 3600)); 
开始时间为晚上9:30,结束时间为上午6:30。 从技术上讲,它有两个日期

var timeDiff = Math.abs(datetime.getTime() - now.getTime());
var diffHours = Math.ceil(timeDiff / (1000 * 3600)); 
从上面的代码中,返回14小时,这是正确的

var timeDiff = Math.abs(datetime.getTime() - now.getTime());
var diffHours = Math.ceil(timeDiff / (1000 * 3600)); 
但我只想计算时间差,忽略日期。实际上应该是9个小时

var timeDiff = Math.abs(datetime.getTime() - now.getTime());
var diffHours = Math.ceil(timeDiff / (1000 * 3600)); 

任何建议

Date对象具有多个getTime()函数

var timeDiff = Math.abs(datetime.getTime() - now.getTime());
var diffHours = Math.ceil(timeDiff / (1000 * 3600)); 
尝试使用getHours()、getMinutes()等

var timeDiff = Math.abs(datetime.getTime() - now.getTime());
var diffHours = Math.ceil(timeDiff / (1000 * 3600)); 

由于getTime返回毫秒,因此差值
endDate.getTime()-startDate.getTime()
将是从startDate转到endDate所需的正确毫秒数(忽略任何时区问题)

var timeDiff = Math.abs(datetime.getTime() - now.getTime());
var diffHours = Math.ceil(timeDiff / (1000 * 3600)); 

只需正确地设定日期。如果日期时间是昨天晚上9:30,那么您不应该将其设置为今天晚上9:30,问题似乎更多地在于dateTime变量的初始化。

为什么不只是mod 24小时?我相信您想要的是交换现在和以前的时间,例如,
var timeDiff=Math.abs(dateTime.getTime()-now.getTime())要求使用12小时。@Andrey swap将以负.mmm…返回小时数。。。。通常,差异是通过结束-开始来实现的。如果你得到一个负值,这意味着你的结束在开始之前。这与负值的出现是一致的。
var timeDiff = Math.abs(datetime.getTime() - now.getTime());
var diffHours = Math.ceil(timeDiff / (1000 * 3600));