两个日期之间的JavaScript差异是错误的一个小时
JavaScript difference between two dates is wrong by one hour
我试图计算两个时间之间的差异,如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:54am的unix时间戳。GMT+0中的1:54am与GMT+1中的2:54am相同。即,浏览器将unix时间戳转换为您的本地时间。
将duration转换为日期值是没有意义的,因为duration与时区无关。
this-date返回毫秒。如果从差值构造日期,它将是一个很长的日期1970
Date.prototype.diffTime = function(date){
return (this-date)/1000/60/60;
}
相关文章:
- 内部分区字体大小获胜'调整浏览器窗口大小时不会随媒体查询而更改
- Node.js v6.2.0类扩展不是函数错误
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- 调整窗口大小时,可拖动的对象会出现在容器外部
- document.open/document.write没有正确地清除chrome中的文档——这是chrome的错误吗
- 试图在引导模式内动态生成图表,得到offsetWidth错误
- 为什么会出现错误;未捕获的类型错误:undefined不是函数;
- javascript日期减去小时-错误
- Javascript小时倒计时错误
- html5视频元素有任何错误?它不会在几个小时后继续播放内容
- Flot错误地解释时间戳:将不同的小时显示为同一小时
- "类型错误:can't将未定义转换为对象“t”;当动态调整2D阵列的大小时
- 在IE8中调整窗口大小时JQuery/Javascript无效参数脚本错误
- .format返回错误的小时
- 小时返回错误的时间
- 如果用户输入的时间超过24小时,javascript会报告错误
- Javascript Date()给出错误的日期一个小时
- 如何检查一个'错误'使用PHP/Javascript在24小时内存在
- nodejs - 错误:在使用模块 gm 调整图像大小时生成 ENOENT
- 两个日期之间的JavaScript差异是错误的一个小时