33 lines
819 B
TypeScript
33 lines
819 B
TypeScript
import type { IInterval } from '@mixan/validation';
|
|
|
|
export function formatDateInterval(interval: IInterval, date: Date): string {
|
|
if (interval === 'hour' || interval === 'minute') {
|
|
return new Intl.DateTimeFormat('en-GB', {
|
|
hour: '2-digit',
|
|
minute: '2-digit',
|
|
}).format(date);
|
|
}
|
|
|
|
if (interval === 'month') {
|
|
return new Intl.DateTimeFormat('en-GB', { month: 'short' }).format(date);
|
|
}
|
|
|
|
if (interval === 'day') {
|
|
return new Intl.DateTimeFormat('en-GB', {
|
|
weekday: 'short',
|
|
day: '2-digit',
|
|
month: '2-digit',
|
|
}).format(date);
|
|
}
|
|
|
|
return date.toISOString();
|
|
}
|
|
|
|
export function useFormatDateInterval(interval: IInterval) {
|
|
return (date: Date | string) =>
|
|
formatDateInterval(
|
|
interval,
|
|
typeof date === 'string' ? new Date(date) : date
|
|
);
|
|
}
|