yearSuffix управляет текстовым суффиксом, который
отображается рядом с годом в заголовке календаря компонента Pikaday.
Этот параметр используется исключительно на уровне визуального
представления и не влияет на логику выбора дат, вычисления диапазонов
или форматирование значений в модели данных.
Основная задача заключается в локализации и стилистическом оформлении года, особенно в языках, где принято сопровождать год дополнительным текстом (например, сокращениями единиц времени, грамматическими маркерами или служебными символами).
yearSuffix принимает строковое значение:
string""Любая переданная строка добавляется непосредственно после отображаемого года без дополнительных пробелов или форматирования со стороны библиотеки.
Пример результирующего отображения:
2026 + " г." → 2026 г.2026 + " year" →
2026 year2026 + "" → 2026Суффикс применяется в заголовке календаря, где отображается текущий месяц и год. В стандартной разметке Pikaday это часть строки навигации, обычно в центральной зоне верхней панели календаря.
Комбинация формируется на основе внутренних шаблонов рендеринга:
[месяц] [год][yearSuffix]
Пример логики отображения:
June 2026 г.
Передача параметра осуществляется при инициализации календаря:
const picker = new Pikaday({
field: document.getElementById('date'),
yearSuffix: ' г.'
});
В данном случае суффикс применяется ко всем отображаемым годам независимо от выбранной даты.
yearSuffix часто применяется совместно с системой
локализации i18n, где требуется адаптация интерфейса под
конкретный язык.
Пример для русского интерфейса:
const picker = new Pikaday({
field: document.getElementById('date'),
i18n: {
previousMonth: 'Предыдущий месяц',
nextMonth: 'Следующий месяц',
months: [
'Январь','Февраль','Март','Апрель','Май','Июнь',
'Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'
],
weekdays: [
'Воскресенье','Понедельник','Вторник','Среда',
'Четверг','Пятница','Суббота'
],
weekdaysShort: ['Вс','Пн','Вт','Ср','Чт','Пт','Сб']
},
yearSuffix: ' г.'
});
В этом контексте yearSuffix выступает как завершающий
элемент числового представления года, соответствующий языковым
нормам.
Если значение:
"" — суффикс не отображаетсяnull или undefined — интерпретируется как
отсутствие суффиксаString(value)В практических реализациях рекомендуется использовать строго строковые значения, так как библиотека не выполняет дополнительной валидации.
yearSuffix не влияет на:
minDate / maxDateПараметр затрагивает только строку отображения. При смене месяца или года суффикс применяется повторно при каждом рендере заголовка.
В случаях кастомизации темы календаря возможно влияние CSS на визуальное восприятие суффикса. Например:
.pika-label {
font-weight: 600;
}
.pika-year-suffix {
opacity: 0.7;
margin-left: 2px;
}
Хотя класс pika-year-suffix не является обязательным
стандартом, он часто реализуется в кастомных сборках или обертках, где
суффикс выносится в отдельный DOM-узел.
Изменение yearSuffix после инициализации не всегда
приводит к автоматическому обновлению интерфейса. В типичной реализации
требуется повторный рендер календаря или пересоздание экземпляра:
picker.setYearSuffix(' г.');
picker.draw();
Если метод отсутствует в конкретной версии, применяется пересоздание экземпляра календаря с новым конфигом.
Использование yearSuffix особенно характерно для:
При адаптивной верстке календаря суффикс сохраняет свою позицию относительно года и не переносится на новую строку самостоятельно. Перенос может происходить только при ограничении ширины контейнера, если текст не помещается в одну строку.
yearSuffix,
что не гарантируется к безопасному рендерингуПри использовании кастомных шаблонов календаря логика
yearSuffix может быть переопределена вручную. В таких
случаях значение параметра выступает как вспомогательная переменная, а
не как финальный источник отображения:
onRender: function() {
return `${this.calendars[0].year}${this.config.yearSuffix}`;
}
Такой подход позволяет интегрировать суффикс в полностью переработанный UI без зависимости от стандартного рендера Pikaday.