Я хочу рассчитать количество дней между двумя датами. Общая проблема.JS - Рассчитать количество дней между 2 датами с учетом високосного года
Для Exemple:
var d0 = new Date("2016-02-27");
var d1 = new Date("2017-08-25");
Manypeople рекомендуют использовать разницу эпохальное:
var res = (d1 - d0)/1000/60/60/24;
// res = 545 days
Но я сомнительно, чтобы я написал наивные функцию:
function days(d0, d1)
{
var d = new Date(d0);
var n = 0;
while(d < d1)
{
d.setDate(d.getDate() + 1);
n++;
}
return n;
}
Эта функция и эпоха разница существенно выводит тот же результат, но не с моим особенным примером. Вероятно, потому что 2016 год - високосный год.
res = days(d0, d1);
// res = 546 days
Любая идея, почему?
Это очень хорошо понятый и документированный предмет, некоторые легкие поисковые роботы раскрывают множество информации. – Yoda
Некоторые легкие поисковые роботы показали, что люди просто придерживаются разницы в эпохе, не дожидаясь многого с датой ад. –
Это странно, но это не високосный день, который вызывает разницу.Если вы попробуете 2016-02-27 до 2016-03-01, все будет правильно. – Fels