Files
onboard/resources/js/Utils/dateFormatter.js
brusnitsyn 9ee33bc517 * блокировка изменения отчета для врача
* вывод данных из отчетов для ролей адм и зав
* поправил ширину стобцов ввода
* добавил календарь на страницу статистики
* переделал календарь у заведующего на странице отчета
* добавил и привязал метрики в статистику
2026-02-03 17:03:37 +09:00

47 lines
1.4 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { format } from 'date-fns'
import { ru } from 'date-fns/locale'
/**
* Делает первую букву строки заглавной
*/
const capitalizeFirst = (str) => {
if (!str) return ''
return str.charAt(0).toUpperCase() + str.slice(1)
}
/**
* Форматирует дату по-русски: "Вторник, 3 февраля 2026 г."
*/
export const formatRussianDate = (date) => {
if (!date) return ''
const formatted = format(new Date(date), 'EEEE, d MMMM yyyy г.', { locale: ru })
return capitalizeFirst(formatted)
}
/**
* Форматирует диапазон дат по-русски:
* "С понедельника, 2 февраля 2026 г. по вторник, 3 февраля 2026 г."
*/
export const formatRussianDateRange = (dateRange) => {
if (!dateRange || !Array.isArray(dateRange) || dateRange.length < 2) {
return ''
}
const [startDate, endDate] = dateRange
if (!startDate || !endDate) return ''
const formattedStart = format(new Date(startDate), 'd MMMM yyyy г.', { locale: ru })
const formattedEnd = format(new Date(endDate), 'd MMMM yyyy г.', { locale: ru })
return `С ${formattedStart.toLowerCase()} по ${formattedEnd.toLowerCase()}`
}
/**
* Для совместимости со старым кодом
*/
export const formatDateWithCapital = (date) => {
return formatRussianDate(date)
}