Как лучше всего рассчитать разницу в дате в Javascript? - PullRequest
35 голосов
/ 29 ноября 2008

Я делаю функцию в Javascript, такую ​​как VisualBasic DateDiff.

Вы указываете две даты и интервал времени возврата (секунды, минуты, дни и т. Д.)

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

Итак, как лучше всего рассчитать разницу в датах Javascript?

Ответы [ 2 ]

53 голосов
/ 29 ноября 2008

Используйте объект Дата , например:

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

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

5 голосов
/ 29 ноября 2008

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

Date.getTime()

Здесь вы найдете полную функцию javascript , дополненную проверкой даты.

При этом, как прокомментировал Рафи Б. 5 лет спустя, " Получить разницу между двумя датами в 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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...