Имея действительно странную проблему, я не могу точно определить. Я попробовал несколько разных вариантов, чтобы получить количество дней между двумя датами в JS. По большей части (в 99% случаев) нижеследующее отлично работает, но я получаю некоторые неправильные результаты ** иногда, когда я пересекаю месяцы. Например, если я получаю количество дней между 31 июля 2015 года и 1 августа 2015 года, он правильно возвращает 1. Однако, если я попытаюсь захватить количество дней между 30 июня 2015 года и 1 июля 2015 года, я получаю результат 2 дня (в июне всего 30 дней, я дважды проверял). Это что-то с моей серверной средой, или я схожу с ума?Получите разницу между двумя датами с использованием вопроса JS
start_date = new Date(start); // assuming the format is correct
end_date = new Date(ends); // assuming the format is correct
diff_ms = end_date.getTime() - start_date.getTime();
var days = diff_ms/86400000;
Я также попытался следующие, и получили те же результаты:
start_date = new Date(start); // assuming the format is correct
end_date = new Date(ends); // assuming the format is correct
var timeDiff = Math.abs(end_date.getTime() - start_date.getTime());
var days = Math.ceil(timeDiff/(1000 * 3600 * 24));
Как выглядят ваши стартовые строки, когда вы получаете странные ответы? – Pointy
Я получаю '1':' var d1 = new Date (2015, 05, 30); var d2 = новая дата (2015, 06, 1); (D2-d1)/86400000; '. – leaf
Вы можете начать с предположения, что формат правильный. Покажите пример того, что представляет собой фактический вход. Также немного опасно предположить, что день имеет ровно 24 часа; это не всегда так (думаю, например, летнее время). – JJJ