Calendar/src/v2/core/DateService.ts

22 lines
658 B
TypeScript
Raw Normal View History

import dayjs from 'dayjs';
import { ITimeFormatConfig } from './ITimeFormatConfig';
export class DateService {
constructor(private config: ITimeFormatConfig) {}
parseISO(isoString: string): Date {
return dayjs(isoString).toDate();
}
getDayName(date: Date, format: 'short' | 'long' = 'short'): string {
return new Intl.DateTimeFormat(this.config.locale, { weekday: format }).format(date);
}
getWeekDates(offset = 0): string[] {
const monday = dayjs().startOf('week').add(1, 'day').add(offset, 'week');
return Array.from({ length: 7 }, (_, i) =>
monday.add(i, 'day').format('YYYY-MM-DD')
);
}
}