簡體   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