我正在尝试使用任何第三方日期相关库找出2个日期之间的日期差异。我使用下面的代码,但它显示错误的小时。请更好的建议或指示来纠正这一点。
var FutureDate=new Date('2016-05-08T05:19:05.83');
var TodayDate = new Date();
var t1 = FutureDate.getTime();
var t2 = TodayDate.getTime();
var diffInHours = parseInt((t2-t1)/(24*3600*1000));
alert(diffInHours);
答案 0 :(得分:1)
您实际上可以本地减去彼此的日期。
var msIn1Hour = 3600 * 1000;
var TodayDate = new Date();
var FutureDate = new Date('2016-05-08T05:19:05.83');
alert((TodayDate - FutureDate)/msIn1Hour);
注意:我不太确定您使用parseInt
的原因,因为这意味着用于将string
转换为int
。如果您要对数字进行舍入,请使用Math.floor
或Math.round
。
答案 1 :(得分:1)
var futureDate = new Date('2016-06-08T05:19:05.83');
var todayDate = new Date();
var milliseconds = futureDate.getTime() - todayDate.getTime();
var hours = Math.floor(milliseconds / (60 * 60 * 1000));
alert('Hours: ' + hours);
答案 2 :(得分:1)
只需从公式中除去24除以。那个24实际上是将它转换为difference in days
。
t2-t1 = x milliseconds
x/1000 = y seconds
y/3600 = z hours
当你拥有z时,你就完成了。所以,你不必做24分。所以,你可以简单地写
var FutureDate=new Date('2016-05-08T05:19:05.83');
var TodayDate = new Date();
var t1 = FutureDate.getTime();
var t2 = TodayDate.getTime();
var diffInHours = Math.floor((t2-t1)/(3600*1000)); //Removed the 24 here
alert(diffInHours);