Получение и форматирование первой и последней даты месяца в JavaScript
Быстрый ответ
Для того чтобы получить первую и последнюю даты текущего месяца в JavaScript, примените следующий код:
const now = new Date();
const firstDay = new Date(now.getFullYear(), now.getMonth(), 1);
const lastDay = new Date(now.getFullYear(), now.getMonth() + 1, 0);
console.log(firstDay, lastDay);
Работа с особенностями при работе с датами в JavaScript
Объект Date
в JavaScript является универсальным инструментом для работы с датами, но в некоторых случаях требуется учесть специфику его использования:
- Для правильной установки года используйте метод
setFullYear()
, чтобы избежать неправильной интерпретации двузначных чисел. - Часовые пояса могут влиять на результаты работы с датами. Используйте методы
.toISOString()
или.toLocaleDateString()
для стандартизации вывода. - Отметим, что в JavaScript отсчет месяцев начинается с
0
— так, январь обозначается как0
, а декабрь как11
.
Работа с произвольными месяцами
Чтобы установить начальную и конечную даты для выбранного месяца, можно модифицировать функцию следующим образом:
function getMonthBoundaries(year, month) {
const firstDay = new Date(year, month, 1);
const lastDay = new Date(year, month + 1, 0);
return { firstDay, lastDay };
}
Вызвать функцию getMonthBoundaries(yourYear, yourMonth)
, указывая требуемый год и месяц.
Как представить дату красиво
Для отображения даты в удобном формате MM/DD/YYYY
можно использовать функцию:
function formatDate(date) {
let day = ('0' + date.getDate()).slice(-2);
let month = ('0' + (date.getMonth() + 1)).slice(-2);
let year = date.getFullYear();
return month + '/' + day + '/' + year;
}
Код автоматически добавляет нули к однозначным числам дней и месяцев, обеспечивая соответствие формату.
Упрощение работы с датами при помощи Datejs
Чтобы облегчить манипулирование датами, рекомендуется использовать библиотеку Datejs:
const now = Date.today();
const firstDay = now.moveToFirstDayOfMonth();
const lastDay = now.moveToLastDayOfMonth();
Используйте метод toString("MM/dd/yyyy")
для форматирования даты в удобочитаемом виде.
Визуализация
Предложим вам образно представить процесс определения дат в виде таблицы:
Действие | Пример кода | Результат |
---|---|---|
Начало месяца 🌅 | new Date(year, month) | 📅 С 1-го числа |
Конец месяца 🌇 | new Date(year, month+1, 0) | 📅 Заканчивается на 30/31 |
Код корректно работает с датами в начале и в конце месяца.
Часовые пояса не станут препятствием
Для корректного отображения даты, где бы вы ни находились, можно установить время на начало дня:
const date = new Date();
date.setHours(0,0,0,0);
Полезные материалы
- Date – JavaScript | MDN — Полное руководство по объекту
Date
. - javascript – Calculate last day of month – Stack Overflow — Обсуждения и решения на Stack Overflow.
- JavaScript Date Objects — Обучающие материалы по манипулированию датами в JavaScript.
- get first and last date of month in javascript – Code Examples & Solutions — Коллекция примеров кода.
- Month · Day.js — Документация для библиотеки Day.js, альтернатива Moment.js.
- Moment.js | Docs — Информация по работе с датами в библиотеке Moment.js.