Initial release: DictIA v0.8.14-alpha (fork de Speakr, AGPL-3.0)
This commit is contained in:
67
static/js/modules/utils/dates.js
Normal file
67
static/js/modules/utils/dates.js
Normal file
@@ -0,0 +1,67 @@
|
||||
/**
|
||||
* 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);
|
||||
};
|
||||
Reference in New Issue
Block a user