Quasar предоставляет мощный набор инструментов для работы с датами, интегрируя собственные утилиты и возможности Vue.js. Основная цель — упрощение форматирования, парсинга и манипуляций с датами в приложениях.
date из QuasarQuasar включает модуль date, доступный через импорт из
quasar. Он предоставляет функции для форматирования,
сравнения и вычисления разницы между датами. Пример импорта:
import { date } from 'quasar'
Ключевые функции:
formatDate(value, options) — форматирует дату согласно
переданным опциям.addToDate(value, { days, months, years, hours, minutes, seconds })
— добавляет или вычитает временные интервалы.getDateDiff(date1, date2, unit) — вычисляет разницу
между датами в указанных единицах (например, ‘days’, ‘hours’).isValidDate(value) — проверяет корректность даты.cloneDate(value) — создаёт копию даты.Функция formatDate позволяет задавать формат даты через
шаблоны:
date.formatDate(new Date(), 'YYYY-MM-DD HH:mm:ss') // 2026-03-20 14:35:00
date.formatDate(new Date(), { format: 'DD MMMM YYYY' }) // 20 марта 2026
Поддерживаемые токены формата:
YYYY — полный годYY — две последние цифры годаMM — месяц с ведущим нулёмDD — день месяца с ведущим нулёмHH — часы 24-часового форматаhh — часы 12-часового форматаmm — минутыss — секундыA / a — AM/PMПримеры локализации:
date.formatDate(new Date(), { format: 'DD MMMM YYYY', locale: 'ru' }) // 20 марта 2026
date.formatDate(new Date(), { format: 'dddd, D MMMM YYYY', locale: 'ru' }) // пятница, 20 марта 2026
Для работы с пользовательским вводом необходимо проверять
корректность и преобразовывать строки в объекты Date:
const input = '2026-03-20'
const parsed = new Date(input)
if (date.isValidDate(parsed)) {
console.log('Дата корректна')
}
В Quasar нет отдельного метода парсинга строк, отличного от
стандартного Date, но isValidDate позволяет
надежно проверять результат.
Функция addToDate позволяет легко модифицировать
дату:
const today = new Date()
const nextWeek = date.addToDate(today, { days: 7 })
const lastMonth = date.addToDate(today, { months: -1 })
const inTwoHours = date.addToDate(today, { hours: 2, minutes: 30 })
Можно комбинировать несколько единиц времени одновременно:
const future = date.addToDate(today, { years: 1, months: 2, days: 10 })
getDateDiff возвращает разницу между датами в нужных
единицах:
const start = new Date('2026-03-01')
const end = new Date('2026-03-20')
const diffDays = date.getDateDiff(start, end, 'days') // 19
const diffHours = date.getDateDiff(start, end, 'hours') // 456
Поддерживаемые единицы: 'milliseconds',
'seconds', 'minutes', 'hours',
'days', 'weeks', 'months',
'years'.
QDate — компонент выбора даты. Основные свойства:
v-model — связка с датой.mask — формат отображения (YYYY-MM-DD,
DD/MM/YYYY).locale — локализация отображаемых месяцев и дней
недели.options — функция фильтрации доступных дат.Пример:
<q-date
v-model="selectedDate"
mask="DD.MM.YYYY"
locale="ru"
:options="date => date.getDay() !== 0"
/>
QTime — компонент выбора времени:
v-model — привязка к времени в формате
HH:mm:ss.format24h — включение 24-часового формата.min / max — ограничение времени.Quasar поддерживает русскую локализацию для компонентов даты и
времени через lang:
import { Quasar, date } from 'quasar'
import langRu from 'quasar/lang/ru'
Quasar.lang.set(langRu)
Это автоматически адаптирует названия месяцев, дней недели и формат отображения.
cloneDate — создание копии даты для безопасных
манипуляций.extractDate — выделение отдельных частей даты (год,
месяц, день, час, минута, секунда):const d = new Date()
const year = date.extractDate(d, 'year')
const month = date.extractDate(d, 'month')
compareDate — сравнение двух дат, возвращает
-1, 0 или 1.locale.isValidDate и addToDate для корректного
изменения дат.QDate и QTime для визуального
выбора дат и времени, что минимизирует ошибки ввода.formatDate и getDateDiff для
отображения удобного и понятного формата времени пользователю.Работа с датами в Quasar сочетает удобство встроенных утилит и гибкость компонентов, позволяя легко управлять форматами, вычислять разницы и поддерживать локализацию.