34 lines
897 B
TypeScript
34 lines
897 B
TypeScript
export const format = (d: Date) =>
|
|
`${d.getDate()} ${d.toLocaleString("default", { month: "short" })}`;
|
|
|
|
export const startOfDay = (d: Date) => {
|
|
const x = new Date(d);
|
|
x.setHours(0, 0, 0, 0);
|
|
return x;
|
|
};
|
|
|
|
export const endOfDay = (d: Date) => {
|
|
const x = new Date(d);
|
|
x.setHours(23, 59, 59, 999);
|
|
return x;
|
|
};
|
|
|
|
export const getStartOfWeek = (d: Date) => {
|
|
const date = new Date(d);
|
|
const day = date.getDay() || 7;
|
|
if (day !== 1) date.setDate(date.getDate() - (day - 1));
|
|
return startOfDay(date);
|
|
};
|
|
|
|
export const shiftDate = (d: Date, days: number) =>
|
|
new Date(d.getTime() + days * 86400000);
|
|
|
|
export const getWeekIndex = (date: Date) => {
|
|
const firstDay = new Date(date.getFullYear(), date.getMonth(), 1);
|
|
const firstWeekStart = getStartOfWeek(firstDay);
|
|
return Math.floor(
|
|
(startOfDay(date).getTime() - firstWeekStart.getTime()) /
|
|
(7 * 86400000)
|
|
);
|
|
};
|