Jquery日期差异小时数

时间:2016-05-29 03:51:24

标签: javascript jquery date-difference

我正在尝试使用任何第三方日期相关库找出2个日期之间的日期差异。我使用下面的代码,但它显示错误的小时。请更好的建议或指示来纠正这一点。

My fiddle

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);

3 个答案:

答案 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.floorMath.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);
  1. 小时:分钟= 1:60
  2. 分钟:秒= 1:60
  3. 秒:毫秒= 1:1000
  4. 小时:毫秒= 1:60x60x1000

答案 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);