我正在尝试计算两次之间的时差,例如10:54和09:00(预期时差为1小时54分钟):
Date.prototype.diffTime = function(date){
return new Date(this-date);
}
但这返回的时间比我预期的多一小时:
Thu Jan 01 1970 10:54:00 GMT+0100 (CET)
Thu Jan 01 1970 09:00:00 GMT+0100 (CET)
Thu Jan 01 1970 02:54:00 GMT+0100 (CET)
那么为什么要增加一小时呢?输入时间正确。当我使用getTime()时,我得到1.9小时(this-date / 1000/60/60),这也是正确的。
谢谢您的意见。现在,我编写了一个更简单的功能,该功能可以满足我的需求:
function getTimeHHMI(date){
var minutes = date/1000/60;
var hours = Math.floor(minutes/60);
minutes -= hours*60;
return [hours, minutes].join(':'); // returns 1:54
}
当您传递this-date
到时new Date
,该值将被解释为表示上午1:54的unix时间戳。GMT + 0中的1:54 am与GMT + 1中的2:54 am相同。即浏览器将Unix时间戳转换为您的本地时间。
将持续时间转换为日期值没有意义,因为持续时间与时区无关。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句