Получение и форматирование первой и последней даты месяца в JavaScript

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Для того чтобы получить первую и последнюю даты текущего месяца в JavaScript, примените следующий код:

JS
Скопировать код
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);
Кинга Идем в IT: пошаговый план для смены профессии

Работа с особенностями при работе с датами в JavaScript

Объект Date в JavaScript является универсальным инструментом для работы с датами, но в некоторых случаях требуется учесть специфику его использования:

  • Для правильной установки года используйте метод setFullYear(), чтобы избежать неправильной интерпретации двузначных чисел.
  • Часовые пояса могут влиять на результаты работы с датами. Используйте методы .toISOString() или .toLocaleDateString() для стандартизации вывода.
  • Отметим, что в JavaScript отсчет месяцев начинается с 0 — так, январь обозначается как 0, а декабрь как 11.

Работа с произвольными месяцами

Чтобы установить начальную и конечную даты для выбранного месяца, можно модифицировать функцию следующим образом:

JS
Скопировать код
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 можно использовать функцию:

JS
Скопировать код
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:

JS
Скопировать код
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

Код корректно работает с датами в начале и в конце месяца.

Часовые пояса не станут препятствием

Для корректного отображения даты, где бы вы ни находились, можно установить время на начало дня:

JS
Скопировать код
const date = new Date();
date.setHours(0,0,0,0);

Полезные материалы

  1. Date – JavaScript | MDN — Полное руководство по объекту Date.
  2. javascript – Calculate last day of month – Stack Overflow — Обсуждения и решения на Stack Overflow.
  3. JavaScript Date Objects — Обучающие материалы по манипулированию датами в JavaScript.
  4. get first and last date of month in javascript – Code Examples & Solutions — Коллекция примеров кода.
  5. Month · Day.js — Документация для библиотеки Day.js, альтернатива Moment.js.
  6. Moment.js | Docs — Информация по работе с датами в библиотеке Moment.js.