计算两次之间的日差

时间:2018-10-04 11:33:22

标签: javascript datetime date-formatting

我有两种日期格式,我需要计算两者之间的时差。

第一个日期是当前日期。 第二个日期格式如下:

var depDate = 25092018  //ddmmyyyy
var depTime = 08:35 //hh:mm

新的日期功能不采用格式ddmmyyyy的日期。如何在新的Date函数中输入depDate

我要检查当前日期和depDate之间的差异。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

变量depDate中的日期格式无效。您需要在.replace()中使用正则表达式验证其格式。然后使用Date.prototype.getTime()获取日期的数值。

var depDate = "25092018";  
var depTime = "08:35";
var dateStr = depDate.replace(/(\d{2})(\d{2})(\d{4})/, "$3-$2-$1")+"T"+depTime;
// dateStr => 2018-09-25T08:35

var timeDiff = Math.abs(new Date(dateStr).getTime() - new Date().getTime());
var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24)); 
// 1000 => to converting millisecond to second
// 3600 => to converting second to hour
// 24 =>   to converting hour to day                    
console.log(diffDays);

答案 1 :(得分:0)

如果您使用的是moment模块,那将很容易。在下面编写代码:

let moment = require('moment');
let depDate = "27092018"  //ddmmyyyy
let depTime = "08:35" //hh:mm

let date = moment(depDate, "DDMMYYYY").add(moment(depTime,"HH:mm"))
let difference = moment.duration(moment().diff(date)).asHours();
console.log(difference); // This would be the difference in hours.