javascript количество дней между датами

Вычисление количества дней между двумя датами в JavaScript требуется для использования объекта даты для любого вида расчета. Для этого сначала получите внутреннее значение миллисекунды даты, используя встроенную функцию JavaScript getTime () . Как только обе даты будут преобразованы, продолжайте, вычитая более позднюю из предыдущей, которая, в свою очередь, возвращает разницу в миллисекундах. Позднее окончательный результат можно рассчитать путем деления разницы (в миллисекундах) обеих дат на количество миллисекунд в одном дне.

Синтаксис:

Подход 1:

  • Определите две даты, используя новую Date () .
  • Рассчитать разницу во времени двух дат с помощью date2.getTime () — date1.getTime ();
  • Рассчитать нет. дней между двумя датами, разделите разницу во времени обеих дат на нет. миллисекунд в день (1000 * 60 * 60 * 24)
  • Напечатайте окончательный результат, используя document.write () .

Пример 1: Следующая программа JavaScript проиллюстрирует решение

На данный вопрос уже ответили:

Здравствуйте. В процессе работы возникли сложности с выводом количества разницы дней между датами введенными в два input type=»data», как делать разницу между тем что является строкой? Тип data, потому что при запуске страницы js подгружает сегодняшнюю дату и дату плюс 3 дня. А нужно сравнение между введенными, а не установленными, то есть вызов функции будет(логично) через onchange. Спасибо за наводки, надеюсь, объяснил нормально.

Содержание

  1. Отмечен как дубликат участниками jfs, Pavel Mayorov, Sergey Gornostaev, rjhdby, AseN 11 окт ’17 в 19:39 .
  2. 36 ответов
  3. Описание

Отмечен как дубликат участниками jfs, Pavel Mayorov, Sergey Gornostaev, rjhdby, AseN 11 окт ’17 в 19:39 .

Подобный вопрос задавали ранее и на него уже получен ответ. Если представленные ответы не являются исчерпывающими, пожалуйста, задайте новый вопрос.

Как получить количество дней между двумя датами в JavaScript? Например, учитывая две даты в поле ввода:

36 ответов

346 Решение Miles [2009-02-12 23:43:00]

Вот быстрая и грязная реализация datediff , как доказательство концепции для решения проблемы, представленной в вопросе. Он полагается на то, что вы можете получить истекшие миллисекунды между двумя датами, вычитая их, что приводит их к их первообразному значению числа (миллисекунды с начала 1970 года).

Вы должны знать, что «обычные» API-интерфейсы даты (без «UTC» в имени) работают в локальном часовом поясе пользовательского браузера, поэтому, в общем, вы можете столкнуться с проблемами, если ваш пользователь находится в часовом поясе, ожидайте, и ваш код будет иметь дело с переходами на летнее время. Вы должны внимательно прочитать документацию для объекта Date и его методов, а для чего-то более сложного, настоятельно рекомендуем использовать библиотеку, которая предлагает более безопасные и мощные API для обработки дат.

Кроме того, для иллюстративных целей фрагмент использует кратность для именованного доступа к объекту window , но в процессе производства вы должны использовать стандартизированные API, такие как getElementById или, более вероятно, некоторые интерфейсы пользовательского интерфейса.

185 Michael Liu [2012-06-28 23:13:00]

На момент написания этой статьи, только один из других ответов правильно обрабатывает переходы DST (переход на летнее время). Вот результаты по системе, расположенной в Калифорнии:

Хотя Math.round возвращает правильные результаты, я думаю, что он несколько неуклюж. Вместо этого, явно учитывая изменения смещения UTC, когда DST начинается или заканчивается, мы можем использовать точную арифметику:

Описание

Расчеты с датой в JavaScript сложны, потому что Date объекты хранятся внутри внутри UTC, а не по местному времени. Например, 3/10/2013 12:00 AM Тихоокеанское стандартное время (UTC-08: 00) хранится как 3/10/2013 8:00 AM UTC и 3/11/2013 12:00 AM Pacific Daylight Time ( UTC-07: 00) хранится как 3/11/2013 7:00 UTC. В этот день полночь в полночь по местному времени составляет только 23 часа в UTC!

Хотя день в местное время может быть больше или меньше 24 часов, день в UTC всегда ровно 24 часа. 1 . Метод daysBetween , показанный выше, использует этот факт, сначала вызывая treatAsUTC , чтобы настроить оба локальных раза до полуночи UTC, прежде чем вычитать и делить.

1. JavaScript игнорирует секунды прыжка.

106 some [2009-02-13 04:50:00]

Самый простой способ получить разницу между двумя датами:

Вы получаете дни разницы (или NaN, если один или оба не могут быть проанализированы). Дата синтаксического анализа дала результат в миллисекундах, и чтобы получить его на день, вы должны разделить его на 24 * 60 * 60 * 1000

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

Вот моя рефакторинговая версия версии Джеймса:

Я рекомендую использовать библиотеку moment.js(http://momentjs.com/docs/#/displaying/difference/). Он правильно управляет летним временем и в целом отлично работает.

40 fuentesjr [2009-02-12 23:45:00]

Я бы пошел и захватил эту небольшую утилиту, и в ней вы найдете функции для этого. Вот краткий пример:

Источник: computermaker.info

Техника и Гаджеты
Добавить комментарий