44 lines
1.1 KiB
TypeScript
44 lines
1.1 KiB
TypeScript
import { type ClassValue, clsx } from "clsx"
|
||
import { twMerge } from "tailwind-merge"
|
||
|
||
export function cn(...inputs: ClassValue[]) {
|
||
return twMerge(clsx(inputs))
|
||
}
|
||
|
||
// Функции для форматирования
|
||
|
||
// Форматировать дату
|
||
export function formatDate(dateString: string): string {
|
||
if (!dateString) return 'Не указано';
|
||
|
||
try {
|
||
const date = new Date(dateString);
|
||
|
||
// Проверка на валидность даты
|
||
if (isNaN(date.getTime())) {
|
||
return 'Некорректная дата';
|
||
}
|
||
|
||
return new Intl.DateTimeFormat('ru-RU', {
|
||
year: 'numeric',
|
||
month: 'long',
|
||
day: 'numeric',
|
||
hour: '2-digit',
|
||
minute: '2-digit'
|
||
}).format(date);
|
||
} catch (error) {
|
||
console.error('Ошибка при форматировании даты:', error);
|
||
return 'Ошибка форматирования';
|
||
}
|
||
}
|
||
|
||
// Форматировать цену
|
||
export function formatPrice(price: number): string {
|
||
return price.toLocaleString('ru-RU', {
|
||
style: 'currency',
|
||
currency: 'RUB',
|
||
minimumFractionDigits: 0,
|
||
maximumFractionDigits: 0
|
||
});
|
||
}
|