Момент js: получение первого и последнего дня месяца

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

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

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

Для определения границ текущего месяца с использованием Moment.js, применяйте следующий код:

JS
Скопировать код
let firstDay = moment().startOf('month').format('YYYY-MM-DD'); // Отмечаем начало месяца!
let lastDay = moment().endOf('month').format('YYYY-MM-DD'); // Установим конец месяца!

Методы startOf('month') и endOf('month') позволяют корректно определить даты первого и последнего дней месяца.

Кинга Идем в IT: пошаговый план для смены профессии

Комфортная работа с часовыми поясами

К библиотеке Moment.js можно легко применить часовые поясы. В случае с UTC, используйте:

JS
Скопировать код
let firstDayUtc = moment.utc().startOf('month').format('YYYY-MM-DD'); // UTC полночь, начало месяца!
let lastDayUtc = moment.utc().endOf('month').format('YYYY-MM-DD'); // UTC полночь, конец месяца!

Использование функции .utc() позволяет трансформировать локальное время в UTC, устраняя проблемы с часовыми поясами.

Возвращение к корням: применение нативного JavaScript

Если у вас нет необходимости в использовании Moment.js, вы можете также воспользоваться нативным JavaScript:

JS
Скопировать код
let date = new Date(), y = date.getFullYear(), m = date.getMonth();
let firstDay = new Date(y, m, 1).toISOString().slice(0, 10); // Стартуем месяц с чистого листа!
let lastDay = new Date(y, m + 1, 0).toISOString().slice(0, 10); // Аккуратно завершаем его!

Данный способ преобразует объекты Date в желаемый формат YYYY-MM-DD.

Тонкая настройка и форматирование

Библиотека Moment.js прекрасно подсказывает как работать с различными форматами дат:

JS
Скопировать код
let firstDayWithTime = moment().startOf('month').format('YYYY-MM-DD HH:mm:ss'); // Установим точное время начала месяца!
let lastDayWithTime = moment().endOf('month').format('YYYY-MM-DD HH:mm:ss'); // И аккуратно зафиксируем время его завершения.

Формат HH:mm:ss добавляет к дате еще и время, что потребуется при необходимости точности до секунды.

Визуализация

Получение данных о первом и последнем дне текущего месяца с помощью Moment.js визуально напоминает работу с календарем:

Markdown
Скопировать код
📅 Текущий месяц: Апрель

Пример работы:

JS
Скопировать код
let firstDay = moment().startOf('month'); // 🌅 Отмечаем первый день месяца в календаре.
let lastDay = moment().endOf('month');    // 🌆 И закрываем календарь на последний день месяца.

Вот как это выглядит:

Markdown
Скопировать код
| Месяц            | Первый день (🌅) | Последний день (🌆) |
| ---------------- | ---------------- | ------------------- |
| Текущий (Апрель) | 1 апреля         | 30 апреля           |

Moment.js — незаменимый инструмент для управления временем. 🚀🗓️

Выбор диапазона дат с помощью daterangepicker

Если возникли специфические требования к датам, daterangepicker облегчит решение вашей задачи:

JS
Скопировать код
let dateRangePickerOptions = {
    startDate: moment().startOf('month'),
    endDate: moment().endOf('month')
};

$('input').daterangepicker(dateRangePickerOptions, function(start, end, label) {
    alert('Выбран новый диапазон дат: ' + start.format('YYYY-MM-DD') + ' – ' + end.format('YYYY-MM-DD'));
});

daterangepicker предлагает начало и конец месяца как предустановленный диапазон дат, расширяя возможности для настройки UI.

Манипуляции с датами на примере Moment.js

Благодаря Moment.js манипулировать датами становится гораздо проще благодаря таким методам как add() и subtract(). Получим первый и последний дни предыдущей недели:

JS
Скопировать код
let lastWeekFirstDay = moment().subtract(1, 'weeks').startOf('week').format('YYYY-MM-DD'); // Возвращаемся к началу прошлой недели!
let lastWeekLastDay = moment().subtract(1, 'weeks').endOf('week').format('YYYY-MM-DD'); // И отмечаем её завершение.

Защита вашего проекта от устаревших функций

Несмотря на все достоинства Moment.js, важно быть в курсе устаревших функций. Ознакомьтесь с официальной документацией. При необходимости экономии пространства рассмотрите более легковесные альтернативы, к примеру, date-fns или Day.js.

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

  1. Moment.js | Документация — полнейшая документация по Moment.js.
  2. Получить первую и последнюю дату текущего месяца в JavaScript или jQuery – Stack Overflow — обсуждение особенностей работы с датами в JavaScript.
  3. Date – JavaScript | MDN — подробное руководство по использованию Date в JavaScript.
  4. Шпаргалка по Moment.js — удобная шпаргалка по Moment.js.
  5. GitHub – moment/moment: Parse, validate, manipulate, and display dates in javascript. — репозиторий Moment.js с информацией о внесении изменений и отслеживании ошибок.
  6. momentjs.com — пошаговое руководство по работе с Moment.js.
  7. Moment.js | Документация — информация о предстоящих изменениях в Moment.js.
Свежие материалы