Метод getMoment представляет собой удобный инструмент
для работы с выбранной датой в формате объекта moment.js.
Он является частью API библиотеки Pikaday и позволяет получать текущее
состояние календаря в формате, совместимом с популярной библиотекой для
работы с датами и временем.
pikadayInstance.getMoment();
pikadayInstance — экземпляр календаря, созданный с
помощью конструктора new Pikaday({ ... }).moment, который отражает текущую
выбранную дату. Если дата не была выбрана, возвращается
null.Совместимость с moment.js Объект, возвращаемый
методом getMoment, полностью поддерживает все методы
moment.js: форматирование, арифметику с датами, сравнение
дат, манипуляции с временными зонами.
var pikaday = new Pikaday({ field: document.getElementById('datepicker') });
var selectedMoment = pikaday.getMoment();
if (selectedMoment) {
console.log(selectedMoment.format('YYYY-MM-DD')); // вывод выбранной даты
}Отсутствие даты Если пользователь еще не выбрал
дату, метод возвращает null. Это важно учитывать при
использовании метода в логике приложения.
var selectedMoment = pikaday.getMoment();
if (!selectedMoment) {
console.log('Дата не выбрана');
}Управление форматами Метод не принимает
параметры — все форматирование выполняется с помощью методов
moment.js. Например:
var formattedDate = pikaday.getMoment().format('DD.MM.YYYY');
console.log(formattedDate);
Это обеспечивает гибкость и позволяет легко интегрировать Pikaday в существующие приложения, где требуется конкретный формат даты.
Пример 1: Сравнение выбранной даты с текущей датой
var today = moment();
var selected = pikaday.getMoment();
if (selected && selected.isBefore(today)) {
console.log('Выбранная дата в прошлом');
} else if (selected && selected.isAfter(today)) {
console.log('Выбранная дата в будущем');
} else {
console.log('Выбрана текущая дата');
}
Пример 2: Добавление дней к выбранной дате
var selected = pikaday.getMoment();
if (selected) {
var newDate = selected.add(7, 'days');
console.log('Дата через 7 дней:', newDate.format('YYYY-MM-DD'));
}
Пример 3: Использование в валидации формы
var selected = pikaday.getMoment();
if (!selected) {
alert('Необходимо выбрать дату!');
} else if (selected.isBefore(moment(), 'day')) {
alert('Выбранная дата не может быть в прошлом');
}
getMoment возвращает копию объекта
даты, а не ссылку на внутреннее состояние календаря. Это
предотвращает случайные изменения даты в Pikaday при манипуляции
объектом moment.getMoment нет необходимости вручную
конвертировать строку из поля ввода — объект сразу готов к
обработке.undefined.Метод getMoment удобно использовать совместно с методами
setMoment, getDate и
toString:
setMoment(momentObj) — устанавливает выбранную дату на
основе объекта moment.getDate() — возвращает стандартный объект JavaScript
Date.toString(format) — возвращает строковое представление
даты с указанным форматом.Пример интеграции:
var pikaday = new Pikaday({ field: document.getElementById('datepicker') });
var selected = pikaday.getMoment();
if (selected) {
pikaday.setMoment(selected.add(1, 'month')); // смещение даты на месяц вперед
console.log(pikaday.toString('YYYY-MM-DD'));
}
getMoment всегда для работы с моментами
даты, когда требуется форматирование, арифметика или сравнение.null, чтобы избежать
ошибок в логике приложения.setMoment и toString
для полной гибкости при управлении датами.Метод getMoment является ключевым для интеграции Pikaday
с moment.js, обеспечивая мощный и удобный механизм работы с датами
внутри календаря.