Js сколько дней между датами
Перейти к содержимому

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

  • автор:

JS разница дат в днях

В этом уроке мы найдем разницу между двумя датами в днях. Для начала нам нужно сначала создать две даты. Мы можем сделать это с помощью класса Date .

Давайте сделаем две даты:

let date1 = new Date(2021, 11, 15); let date2 = new Date(2021, 10, 10);

Теперь, чтобы найти разницу в днях между этими двумя датами, мы можем использовать следующий код:

let diffInSecs = date2.getTime() — date1.getTime(); let diffInDays = Math.round(diffInSecs / (1000 * 3600 * 24)); console.log(`разница в днях: $`);

Здесь мы сначала получаем время в миллисекундах для каждой даты с помощью метода getTime . Затем мы вычитаем время второй даты из времени первой даты, чтобы получить разницу во времени в миллисекундах. Затем мы делим эту разницу на количество миллисекунд в одном дне (1000 * 60 * 60 * 24), чтобы получить количество дней между двумя датами. Наконец, мы округляем результат с помощью функции Math.round .

Разница дней между двумя ВВЕДЕННЫМИ датами JS [дубликат]

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

Отслеживать
Влад Юдкин
задан 29 сен 2017 в 19:48
Влад Юдкин Влад Юдкин
177 1 1 золотой знак 1 1 серебряный знак 14 14 бронзовых знаков

в прошлом вашем вопросе, точнее в ответе к нему, есть метод парсинга даты, считайте значение, распарсите етим методом.

29 сен 2017 в 20:05

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Сначала нужно привести к формату потребляемому JS, затем создается объекты с типом Date и производится вычитание, умноженное на коэффициэнт. Пример:

var date1 = new Date('12-09-2017'); var date2 = new Date('12-10-2017'); var daysLag = Math.ceil(Math.abs(date2.getTime() - date1.getTime()) / (1000 * 3600 * 24)); console.log(daysLag) >1 

Отслеживать
ответ дан 29 сен 2017 в 20:44
164 2 2 бронзовых знака

Вот пример расчёта разницы времени из строковых представлений дат в формате MySQL (yyyy-mm-dd hh:mm:ss):

// Код просто взял из своего приложения, ничего не меняя. // Если формат не соответствует тому, в котором у вас ввод - подгоните регулярки в первых двух строках кода под ваш формат // . var start = new Date(Timings[i]['start_time'].replace(/-/g,"/")); var stop = new Date(Timings[i]['stop_time'].replace(/-/g,"/")); var session = stop - start; var session_string = msToTime(session); // . function msToTime(duration, show_days) < var seconds = parseInt((duration/1000)%60); var minutes = parseInt((duration/(1000*60))%60); var hours = parseInt((duration/(1000*60*60))%24); var days = parseInt(duration/(1000*60*60*24)); hours = (hours < 10) ? "0" + hours : hours; minutes = (minutes < 10) ? "0" + minutes : minutes; seconds = (seconds < 10) ? "0" + seconds : seconds; // Формат возвращаемого значения перепишите как Вам надо. return show_days?(GetNumberWithPostfix(days, 'day') + ", " + hours + ":" + minutes + ":" + seconds):(hours + ":" + minutes + ":" + seconds); >

Rukovodstvo

статьи и идеи для разработчиков программного обеспечения и веб-разработчиков.

JavaScript: узнать количество дней между датами

Введение Мы часто подсчитываем количество дней от и до свидания. Будь то вычисление того, когда кто-то должен вернуть книгу, когда нужно продлить подписку, сколько дней прошло с момента уведомления или когда приближается новое событие. В этом руководстве мы рассмотрим, как получить количество дней между датами в JavaScript. Объект даты в JavaScript. Дата в JavaScript — это количество тактов (или миллисекунд), прошедших с начала

Время чтения: 3 мин.

Вступление

Мы часто оказываемся подсчета количества дней от и до настоящего времени. Будь то вычисление того, когда кто-то должен вернуть книгу, когда нужно продлить подписку, сколько дней прошло с момента уведомления или когда приближается новое событие.

В этом руководстве мы рассмотрим, как получить количество дней между датами в JavaScript .

Объект Date в JavaScript

Date JavaScript — это Number тактов (или миллисекунд), прошедших с начала эпохи UNIX (полночь 1 января 1970 г. по всемирному координированному времени).

Несмотря на то, что, по сути, Date определяется в терминах UTC , все его методы получают время и даты в местном часовом поясе:

 Date(); // Constructor for a new Date object Date.now(); // Number of miiliseconds elaspsed since January 1, 1970 00:00:00 UTC 

Теперь, когда мы знакомы с синтаксисом, давайте посмотрим, как получить количество дней между двумя датами с помощью Date в JavaScript.

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

Чтобы получить количество дней между двумя датами, мы getNumberOfDays() , которая принимает два объекта Date

 function getNumberOfDays(start, end) < const date1 = new Date(start); const date2 = new Date(end); // One day in milliseconds const oneDay = 1000 * 60 * 60 * 24; // Calculating the time difference between two dates const diffInTime = date2.getTime() - date1.getTime(); // Calculating the no. of days between two dates const diffInDays = Math.round(diffInTime / oneDay); return diffInDays; >console.log(getNumberOfDays("2/1/2021", "3/1/2021")); 

Этот код приводит к:

Функция принимает две String , представляющие даты. Сначала мы создаем Date из этих строк, после чего вычисляем количество миллисекунд в день. Функция getTime() возвращает время в миллисекундах между началом эпохи Unix и текущим временем. Итак, если мы вычтем дату start end , мы получим количество миллисекунд между ними.

Затем мы можем превратить это количество миллисекунд в дни, разделив его на количество миллисекунд в дне, в результате чего получится количество дней между двумя датами.

Примечание. Этот подход включает start , но исключает дату end

Получите количество дней между датами в JavaScript с помощью js-joda

Разработчики, знакомые с Java, вероятно, будут знакомы с широко используемой библиотекой Joda-Time , которая была чрезвычайно популярна до обновления Java 8 API даты / времени.

Влияние Joda-Time вдохновило на создание js-joda — универсальной библиотеки даты / времени для JavaScript, основанной на календарной системе ISO.

Дополнительным преимуществом является то, что он чрезвычайно легкий и очень быстрый, и по сравнению с другими библиотеками, такими как Moment.js или date-utils , он предоставляет собственную реализацию объектов даты / времени вместо того, чтобы полагаться на Date из собственной реализации JavaScript. .

Давайте импортируем библиотеку через ванильный JavaScript:

Или, если вы используете NPM:

 $ npm install js-joda 

Теперь мы можем использовать js-joda API. Давайте перепишем предыдущую функцию, чтобы использовать LocalDate , любезно предоставленный js-joda :

 const JSJoda = require('js-joda'); const LocalDate = JSJoda.LocalDate; function getNumberOfDays(start, end) < const start_date = new LocalDate.parse(start); const end_date = new LocalDate.parse(end); return JSJoda.ChronoUnit.DAYS.between(start_date, end_date); >console.log(getNumberOfDays("2021-02-01", "2021-03-01")); 

Это также приводит к:

Примечание: этот подход также исключает end_date .

Заключение

В этом руководстве мы рассмотрели, как получить количество дней между датами в JavaScript. Помимо встроенного подхода, основанного на Date , мы также исследовали js-joda , которая была вдохновлена библиотекой Joda-Time , управляемой Java, для гораздо более лаконичного подхода к решению этой проблемы.

Licensed under CC BY-NC-SA 4.0

JavaScript: узнаём количество дней между датами

JavaScript: узнаём количество дней между датами

Мы часто считаем количество дней от и до даты. Будь то расчет того, когда кто-то должен вернуть книгу, когда следует продлить подписку, сколько дней прошло с момента уведомления или когда ожидается какое-то событие.

В этом уроке мы рассмотрим, как узнать количество дней между датами в JavaScript.

В моем канале вы найдете много задач с собеседований и акутальных инструментов и гайдов для Javascript разработчиков.

Объект Date в JavaScript

Date – это количество ( Number ) тактов (или миллисекунд), прошедших с начала эпохи UNIX (полночь 1 января 1970 года по UTC).

Несмотря на то, что, по сути, объект Date написан в UTC, все его методы извлекают время и даты в местном часовом поясе:

Date(); // Constructor for a new Date object Date.now(); // Number of miiliseconds elaspsed since January 1, 1970 00:00:00 UTC

Теперь давайте рассмотрим, как узнать количество дней между двумя датами, используя объект Date в JavaScript.

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

Чтобы узнать количество дней между двумя датами, создадим простую функцию getNumberOfDays() , которая принимает два объекта Date :

function getNumberOfDays(start, end) < const date1 = new Date(start); const date2 = new Date(end); // One day in milliseconds const oneDay = 1000 * 60 * 60 * 24; // Calculating the time difference between two dates const diffInTime = date2.getTime() - date1.getTime(); // Calculating the no. of days between two dates const diffInDays = Math.round(diffInTime / oneDay); return diffInDays; >console.log(getNumberOfDays("2/1/2021", "3/1/2021"));

Функция принимает две строки, наши даты. Сначала из этих строк мы создаем объекты Date , после чего вычисляем количество миллисекунд в день. Функция getTime() выводит время в миллисекундах между началом эпохи Unix и настоящим временем. Итак, если мы вычтем дату начала из даты окончания, мы получим количество миллисекунд между ними.

Затем мы можем превратить это количество миллисекунд в дни, разделив его на количество миллисекунд в день, в результате чего получится количество дней между двумя датами.

Примечание: этот подход включает дату начала, но исключает дату окончания.

Узнаём расстояние между датами в JavaScript с помощью js-joda

Разработчики, знакомые с Java, вероятно, будут знакомы с широко используемой библиотекой Joda-Time, которая была очень популярна до обновления даты/времени Java 8 API.

Joda-Time вдохновило на создание js-joda – библиотеки даты и времени общего назначения для JavaScript, основанной на календарной системе ISO.

Он лёгкий и быстрый, и по сравнению с другими библиотеками, например, Moment.js или утилиты date-utils , он предоставляет собственную реализацию объектов даты/времени вместо того, чтобы полагаться на класс Date из JavaScript.

Импортируем библиотеку с помощью JavaScript:

Или используя NPM:

$ npm install js-joda

Теперь мы можем использовать API js-joda. Перепишем предыдущую функцию, чтобы использовать класс LocalDate , предоставленный js-joda :

const JSJoda = require('js-joda'); const LocalDate = JSJoda.LocalDate; function getNumberOfDays(start, end) < const start_date = new LocalDate.parse(start); const end_date = new LocalDate.parse(end); return JSJoda.ChronoUnit.DAYS.between(start_date, end_date); >console.log(getNumberOfDays("2021-02-01", "2021-03-01"));

Результат тот же:

Примечание: этот подход также исключает значение end_date .

Заключение

В этом уроке мы рассмотрели, как получить расстояние между датами в JavaScript. Помимо встроенного подхода, основанного на классе Date , мы изучили библиотеку js-joda , вдохновлённую библиотекой Joda-Time на основе Java, для гораздо более простого подхода к решению этой проблемы.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *