繁体   English   中英

如何使用 Node.js 计算两个日期之间的差异?

[英]How to calculate difference between two dates using Node.js?

我需要使用 node.js 计算datetime差。 我正在使用dateformat包来获取当前的日期时间格式。 我的代码如下:

var dateFormat = require('dateformat');
var prev_date=2017-08-09T19:00:58+0530;
var now = new Date();
var current_date=dateFormat(now, "isoDateTime");

在这里,我已经有了以前的日期和当前的datetime 我需要分别计算两个日期的小时、分钟和秒之间的差异。

let firstDate = new Date("7/13/2016"),
    secondDate = new Date("09/15/2017"),
    timeDifference = Math.abs(secondDate.getTime() - firstDate.getTime());

console.log(timeDifference);
alert(timeDifference)

如果您想要两个日期之间的天数...

let differentDays = Math.ceil(timeDifference / (1000 * 3600 * 24));

console.log(differentDays);
alert(differentDays);

您也可以使用 Moment.js https://momentjs.com/docs/

console.log(moment.utc(moment(firstDate,"DD/MM/YYYY HH:mm:ss").diff(moment(secondDate,"DD/MM/YYYY HH:mm:ss"))).format("HH:mm:ss"))

如果要计算两个日期之间的日差,则不需要任何包。 您可以使用简单的 JavaScript。

var date1 = new Date("08/09/2017");
var date2 = new Date("08/10/2017");
var diffDays = parseInt((date2 - date1) / (1000 * 60 * 60 * 24)); //gives day difference 
//one_day means 1000*60*60*24
//one_hour means 1000*60*60
//one_minute means 1000*60
//one_second means 1000
console.log(diffDays)

function diffDateAndTime(stratDate, endDate, startTime, endTime) { let nowDate = moment(Date.now()).format("YYYY-MM-DD"); let nowTime = moment(Date.now()).format("YYYY-MM-DD HH:mm:ss"); 让 dateOfStart = moment(stratDate).format("YYYY-MM-DD"); 让 dateOfEnd =moment(endDate).format("YYYY-MM-DD"); 让 timeOfStart = moment(Date.now()).format("YYYY-MM-DD") + " " + moment(startTime).format("HH:mm"); 让 timeOfEnd = moment(Date.now()).format("YYYY-MM-DD") + " " + moment(endTime).format("HH:mm"); 让差异日期,差异时间; diffDate = (moment(dateOfStart).diff(nowDate) <= 0) && (moment(dateOfEnd).diff(nowDate) >= 0); if (moment(dateOfStart).diff(nowDate) === 0) { diffTime = (moment(timeOfStart).diff(nowTime) < 0) diffDate = diffTime; } if (moment(dateOfEnd).diff(nowDate) === 0) { diffTime = moment(timeOfEnd).diff(nowTime) > 0 diffDate = diffTime; 返回差异日期; }

function date_diff(d1, d2, get_item)
{
var date1 = new Date(d1)
var date2 = new Date(d2)
var Difference_In_Time = date1.getTime() - date2.getTime();
switch (get_item) {
    case 'month':
        return Math.round(Difference_In_Time / (1000 * 3600 * 24 * 30));
    case 'day':
        return Math.round(Difference_In_Time / (1000 * 3600 * 24));
    case 'hour':
        return Math.round(Difference_In_Time / (1000 * 3600));
    case 'minute':
        return Math.round(Difference_In_Time / (1000 * 60));
    case 'second':
        return Math.round(Difference_In_Time / 1000);    
    default:
        break;
}
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM