понедельник, 12 января 2009 г.

Сколько дней между датами

Узнать сколько дней между двумя датами можно с помощью следующего JavaScript кода:

// Первая дата (год, месяц, день)
var Date1 = new Date (2008, 7, 25);

// Вторая дата (год, месяц, день)
var Date2 = new Date (2009, 0, 12);

// Сколько целых дней между датами
var Days = Math.floor((Date2.getTime() - Date1.getTime())/(1000*60*60*24));

Концептуально всё просто. Берем одну дату в миллисекундах прошедших с 1 января 1970 года и вычитаем из нее другую дату в тех же миллисекундах. То что получилось делим на количество миллисекунд в одном дне и округляем до ближайшего меньшего целого.

При задании даты важно помнить, что месяц задается в диапазоне от 0 (январь) до 11 (декабрь).

6 комментариев:

  1. Громадное спасибо! Так все просто!
    В мемориз ;)

    ОтветитьУдалить
  2. ошибка получается (
    Возьмем первую дату 2012,4,30 и вторую 2012,5,1 - высчитывает 2 дня, вместо одного, получается что он считает будто в апреле 31 день, а не 30

    ОтветитьУдалить
  3. Внимательно прочитайте последнее предложение поста. Вы посчитали количество дней между 30 мая и 1 июня. В мае таки тридцать один день.

    ОтветитьУдалить
  4. Лучшеб пример считающий дни по факту выложили, т.е. разница между 10.10.2010 23:59 и 11.10.2010 00:00 былаб 1 день

    ОтветитьУдалить
  5. Формально это два разных дня. Поэтому и разница в один день. Человек родился 10 октября 2010 года за минуту до полуночи, через минуту полночь наступил - человек свой первый день прожил.

    ОтветитьУдалить

Примечание. Отправлять комментарии могут только участники этого блога.