2008-11-29 3 views
33

Я выполняю функцию в Javascript, как VisualBasic DateDiff.Каков наилучший способ рассчитать разницу дат в Javascript

Даешь две даты и возвращающегося интервал времени (секунды, минуты, дни, и т.д ...)

DateDiff(ByVal Interval As Microsoft.VisualBasic.DateInterval, _ 
    ByVal Date1 As Date, ByVal Date2 As Date) as Long 

Так что это лучший способ, чтобы вычислить разницу Javascript дат?

+1

Duplicate: http://stackoverflow.com/questions/41948/how-do-i-get-the-difference-between-two-dates-in-javascript – 2008-11-29 11:53:22

ответ

49

Используйте Date object так:

function DateDiff(var /*Date*/ date1, var /*Date*/ date2) { 
    return date1.getTime() - date2.getTime(); 
} 

Это возвращает количество миллисекунд разницы между двумя датами. Преобразование его в секундах, минутах, часах и т. Д. Не должно быть слишком сложным.

4

Если вы будете следовать этому tutorial, один из способов заключается в использовании:

Date.getTime() 

Вы найдете полный javascript function here, в комплекте с проверкой даты.

Это, как говорится, Rafi B. 5 лет спустя, «Get difference between 2 dates in javascript?» более точно.

var _MS_PER_DAY = 1000 * 60 * 60 * 24; 

// a and b are javascript Date objects 
function dateDiffInDays(a, b) { 
    // Discard the time and time-zone information. 
    var utc1 = Date.UTC(a.getFullYear(), a.getMonth(), a.getDate()); 
    var utc2 = Date.UTC(b.getFullYear(), b.getMonth(), b.getDate()); 

    return Math.floor((utc2 - utc1)/_MS_PER_DAY); 
} 
+0

Это дает неправильный час, если вы положили 2PM в 11,59 вечера в тот же день. Вместо того, чтобы давать 10 часов, он дает 10:59. Вы можете проверить это? – jewelhuq 2016-12-25 00:52:06

+0

@jewelhuq 8 лет спустя мне понадобится немного больше деталей. Можете ли вы задать отдельный вопрос? – VonC 2016-12-25 00:52:56

Смежные вопросы