Метод gotoToday

Метод gotoToday позволяет мгновенно переместить текущую дату календаря на сегодняшний день. Он особенно полезен в сценариях, когда необходимо предоставить пользователю быстрый доступ к текущей дате без необходимости ручного выбора. Метод работает на основе внутреннего объекта Date и автоматически обновляет визуальное представление календаря.

Синтаксис

picker.gotoToday();
  • picker — экземпляр объекта Pikaday.
  • Метод не принимает аргументов.
  • После вызова календарь обновляет выбранную дату и отображаемый месяц на сегодняшний день.

Особенности работы

  1. Обновление выбранной даты Метод gotoToday изменяет текущее значение, возвращаемое методом getDate(), на объект Date, соответствующий сегодняшнему дню. Это обновление происходит без генерации события onSelect, если не указано иначе в конфигурации.

  2. Синхронизация с визуальной частью Вызов gotoToday автоматически обновляет интерфейс: календарь показывает текущий месяц и выделяет сегодняшний день. Это гарантирует согласованность внутреннего состояния и отображения.

  3. Совместимость с ограничениями Если в настройках Pikaday заданы параметры minDate или maxDate, метод учитывает их. В случае, если сегодняшний день выходит за эти границы, выбор не произойдет, а календарь переместится к ближайшей допустимой дате.

Примеры использования

var picker = new Pikaday({
    field: document.getElementById('datepicker'),
    format: 'DD/MM/YYYY',
    minDate: new Date(2023, 0, 1),
    maxDate: new Date(2025, 11, 31),
});

// Перейти к сегодняшнему дню
picker.gotoToday();

В данном примере календарь автоматически переключится на текущую дату, учитывая ограничения по minDate и maxDate.

Взаимодействие с другими методами

  • setDate(date): Можно использовать совместно для установки конкретной даты. Если вызвать gotoToday сразу после setDate, календарь вернется на текущий день.
  • getDate(): После вызова gotoToday возвращаемое значение метода getDate() будет соответствовать сегодняшней дате.
  • gotoDate(date): Позволяет программно перемещаться к любой дате; gotoToday является частным случаем вызова с сегодняшней датой.

Практические сценарии

  1. Кнопка «Сегодня» Часто в интерфейсах календаря рядом с полем ввода размещают кнопку, которая при нажатии вызывает gotoToday, обеспечивая быстрый доступ к текущей дате.
document.getElementById('today-btn').addEventListener('click', function() {
    picker.gotoToday();
});
  1. Сброс выбора Метод можно использовать как механизм сброса, возвращая пользователя к актуальной дате после любых пользовательских перемещений по календарю.

  2. Интеграция с формами В форме, где необходимо автоматически подставить текущую дату, gotoToday позволяет синхронизировать значение поля с сегодняшним днем без дополнительных вычислений даты вручную.

Ограничения и нюансы

  • Не генерирует событие onSelect, если не вызвано вручную через setDate. Для обработки логики после перехода на сегодняшний день необходимо самостоятельно проверять getDate().
  • Учитывает только текущую дату системы; при необходимости выбора даты в другой временной зоне нужно предварительно корректировать объект Date.
  • В случаях с множественными календарями метод вызывается индивидуально для каждого экземпляра Pikaday.

Резюме ключевых моментов

  • gotoToday() мгновенно перемещает календарь на текущую дату.
  • Автоматически обновляет визуальное представление календаря.
  • Учитывает ограничения minDate и maxDate.
  • Не инициирует событие onSelect по умолчанию.
  • Используется в кнопках «Сегодня», для сброса выбора и синхронизации полей с текущей датой.

Метод gotoToday обеспечивает быстрый, надежный и интуитивно понятный способ возврата к текущей дате, значительно упрощая работу с календарем Pikaday в пользовательских интерфейсах.