Добавление дней к текущей дате с помощью jQuery: руководство
Быстрый ответ
const addDaysToDate = (daysToAdd) => new Date(Date.now() + daysToAdd * 86400000).toDateString();
console.log(addDaysToDate(10)); // "Дата через 10 дней"
Функция addDaysToDate
позволяет воспроизвести переход в будущее через вычисление и добавление к текущему времени количества миллисекунд, соответствующих заданному количеству дней. В результате, мы получаем форматированную строку с новой датой.
Разбираемся с нашей "машины времени"
Взаимодействие с датами может быть нестандартным заданием, особенно учитывая работу с часовыми поясами и переход на летнее время. Наша функция предполагает, что вы находитесь в часовом поясе UTC, поэтому при работе с локальными временными зонами возможно придется заложить дополнительные настройки.
Верификация работы в браузерах
Функция корректно работает во всех актуальных браузерах, однако если ваш код ориентирован на устаревшие версии, не забудьте провести глубокое тестирование.
Весна, зима и особые случаи
При работе с датами остаётся принимать во внимание возможности високосных годов и переходов на зимнее и летнее время, так как они могут внести коррективы в расчеты дат.
Создано для повторного использования
По вкусу любителей концепции переиспользования кода, нашу функцию можно преобразовать в метод Date
, который будет прибавлять дни к любой указанной дате:
Date.prototype.addDays = function(days) {
let date = new Date(this.valueOf());
date.setDate(date.getDate() + parseInt(days, 10));
return date;
};
let date = new Date();
console.log(date.addDays(10));
Библиотеки? Нет, спасибо!
Несомненно, такие библиотеки как Moment.js значительно упрощают работу с датами, но понимание базовых принципов работы со временем в JavaScript остается важным.
Герои с мечами
Если по каким-то причинам вы предпочитаете использовать Moment.js, то вот так будет выглядеть аналогичный код:
const moment = require('moment');
console.log(moment().add(10, 'days').toDate());
Визуализация
Можно представить нашу функцию как путешествие на лифте внутри времени:
Сегодня (📅): Первый этаж (Текущая дата)
Добавить дней (🔼): Подняться на 5 этажей
let today = new Date();
today.setDate(today.getDate() + 5); // Цель – 5-й этаж
Результат:
Новая дата (🏢): 5-й этаж (Дата через 5 дней)
Временной реверс
При желании "путешествовать" в прошлое используйте отрицательные числа:
console.log(addDaysToDate(-10)); // "Дата 10 дней назад"
Управление временем на уровне профессионала
Добавьте метод addDays()
или функцию addDaysToDate
в ваш инструментарий разработчика для решения различных задач.
Осторожно: драконы
После каждого "путешествия" во времени обязательно верифицируйте полученные результаты. Не забывайте о том, что високосные годы или изменение часового пояса могут подкинуть сюрпризы.
Полезные материалы
- Date – JavaScript | MDN — Обстоятельное руководство об объектах дат в JavaScript.
- Как добавить дни к дате? – Stack Overflow — Рекомендации по прибавлению дней к датам в JavaScript.
- Метод setDate() для объекта Date в JavaScript — Инструкция по установке дня месяца для объекта даты JavaScript.
- Всё, что вам нужно знать о Date в JavaScript | CSS-Tricks — Советы и хитрости для работы с датами в JavaScript.
- Moment.js | Дом — Возможности библиотеки Moment.js для управления датами.
- date-fns — Современная альтернатива Moment.js с открытым исходным кодом, доступным на GitHub.