68 lines
2.1 KiB
JavaScript
68 lines
2.1 KiB
JavaScript
/**
|
|
* Date comparison utility functions
|
|
*/
|
|
|
|
export const isSameDay = (date1, date2) => {
|
|
return date1.getFullYear() === date2.getFullYear() &&
|
|
date1.getMonth() === date2.getMonth() &&
|
|
date1.getDate() === date2.getDate();
|
|
};
|
|
|
|
export const isToday = (date) => {
|
|
const today = new Date();
|
|
return isSameDay(date, today);
|
|
};
|
|
|
|
export const isYesterday = (date) => {
|
|
const yesterday = new Date();
|
|
yesterday.setDate(yesterday.getDate() - 1);
|
|
return isSameDay(date, yesterday);
|
|
};
|
|
|
|
export const isThisWeek = (date) => {
|
|
const now = new Date();
|
|
const startOfWeek = new Date(now);
|
|
const day = now.getDay();
|
|
const diff = now.getDate() - day + (day === 0 ? -6 : 1); // Monday as start of week
|
|
startOfWeek.setDate(diff);
|
|
startOfWeek.setHours(0, 0, 0, 0);
|
|
|
|
const endOfWeek = new Date(startOfWeek);
|
|
endOfWeek.setDate(startOfWeek.getDate() + 6);
|
|
endOfWeek.setHours(23, 59, 59, 999);
|
|
|
|
return date >= startOfWeek && date <= endOfWeek;
|
|
};
|
|
|
|
export const isLastWeek = (date) => {
|
|
const now = new Date();
|
|
const startOfLastWeek = new Date(now);
|
|
const day = now.getDay();
|
|
const diff = now.getDate() - day + (day === 0 ? -6 : 1) - 7; // Previous Monday
|
|
startOfLastWeek.setDate(diff);
|
|
startOfLastWeek.setHours(0, 0, 0, 0);
|
|
|
|
const endOfLastWeek = new Date(startOfLastWeek);
|
|
endOfLastWeek.setDate(startOfLastWeek.getDate() + 6);
|
|
endOfLastWeek.setHours(23, 59, 59, 999);
|
|
|
|
return date >= startOfLastWeek && date <= endOfLastWeek;
|
|
};
|
|
|
|
export const isThisMonth = (date) => {
|
|
const now = new Date();
|
|
return date.getFullYear() === now.getFullYear() && date.getMonth() === now.getMonth();
|
|
};
|
|
|
|
export const isLastMonth = (date) => {
|
|
const now = new Date();
|
|
const lastMonth = new Date(now.getFullYear(), now.getMonth() - 1, 1);
|
|
return date.getFullYear() === lastMonth.getFullYear() && date.getMonth() === lastMonth.getMonth();
|
|
};
|
|
|
|
export const getDateForSorting = (recording, sortBy) => {
|
|
const dateStr = sortBy === 'meeting_date' ? recording.meeting_date : recording.created_at;
|
|
if (!dateStr) return null;
|
|
return new Date(dateStr);
|
|
};
|