mirror of
https://github.com/umami-software/umami.git
synced 2026-02-11 16:17:13 +01:00
Simplified date logic.
This commit is contained in:
parent
0cb28e9fde
commit
f4a9336f9d
2 changed files with 40 additions and 99 deletions
127
src/lib/date.ts
127
src/lib/date.ts
|
|
@ -151,105 +151,50 @@ export function parseDateRange(value: string | object, locale = 'en-US'): DateRa
|
|||
const dateLocale = getDateLocale(locale);
|
||||
const { num, unit } = parseDateValue(value);
|
||||
|
||||
if (num === 1) {
|
||||
switch (unit) {
|
||||
case 'day':
|
||||
return {
|
||||
startDate: startOfDay(now),
|
||||
endDate: endOfDay(now),
|
||||
unit: 'hour',
|
||||
num: +num,
|
||||
offset: 0,
|
||||
value,
|
||||
};
|
||||
case 'week':
|
||||
return {
|
||||
startDate: startOfWeek(now, { locale: dateLocale }),
|
||||
endDate: endOfWeek(now, { locale: dateLocale }),
|
||||
unit: 'day',
|
||||
num: +num,
|
||||
offset: 0,
|
||||
value,
|
||||
};
|
||||
case 'month':
|
||||
return {
|
||||
startDate: startOfMonth(now),
|
||||
endDate: endOfMonth(now),
|
||||
unit: 'day',
|
||||
num: +num,
|
||||
offset: 0,
|
||||
value,
|
||||
};
|
||||
case 'year':
|
||||
return {
|
||||
startDate: startOfYear(now),
|
||||
endDate: endOfYear(now),
|
||||
unit: 'month',
|
||||
num: +num,
|
||||
offset: 0,
|
||||
value,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
if (num === -1) {
|
||||
switch (unit) {
|
||||
case 'day':
|
||||
return {
|
||||
startDate: subDays(startOfDay(now), 1),
|
||||
endDate: subDays(endOfDay(now), 1),
|
||||
unit: 'hour',
|
||||
num: +num,
|
||||
offset: 0,
|
||||
value,
|
||||
};
|
||||
case 'week':
|
||||
return {
|
||||
startDate: subDays(startOfWeek(now, { locale: dateLocale }), 7),
|
||||
endDate: subDays(endOfWeek(now, { locale: dateLocale }), 1),
|
||||
unit: 'day',
|
||||
num: +num,
|
||||
offset: 0,
|
||||
value,
|
||||
};
|
||||
case 'month':
|
||||
return {
|
||||
startDate: subMonths(startOfMonth(now), 1),
|
||||
endDate: subMonths(endOfMonth(now), 1),
|
||||
unit: 'day',
|
||||
num: +num,
|
||||
offset: 0,
|
||||
value,
|
||||
};
|
||||
case 'year':
|
||||
return {
|
||||
startDate: subYears(startOfYear(now), 1),
|
||||
endDate: subYears(endOfYear(now), 1),
|
||||
unit: 'month',
|
||||
num: +num,
|
||||
offset: 0,
|
||||
value,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
switch (unit) {
|
||||
case 'day':
|
||||
case 'hour':
|
||||
return {
|
||||
startDate: subDays(startOfDay(now), +num - 1),
|
||||
endDate: endOfDay(now),
|
||||
num: +num,
|
||||
startDate: subHours(startOfHour(now), num),
|
||||
endDate: endOfHour(now),
|
||||
offset: 0,
|
||||
num: num || 1,
|
||||
unit,
|
||||
value,
|
||||
};
|
||||
case 'hour':
|
||||
case 'day':
|
||||
return {
|
||||
startDate: subHours(startOfHour(now), +num - 1),
|
||||
endDate: endOfHour(now),
|
||||
num: +num,
|
||||
startDate: subDays(startOfDay(now), num),
|
||||
endDate: endOfDay(now),
|
||||
unit: num ? 'day' : 'hour',
|
||||
offset: 0,
|
||||
unit,
|
||||
num: num || 1,
|
||||
value,
|
||||
};
|
||||
case 'week':
|
||||
return {
|
||||
startDate: subWeeks(startOfWeek(now, { locale: dateLocale }), num),
|
||||
endDate: subWeeks(endOfWeek(now, { locale: dateLocale }), num),
|
||||
unit: 'day',
|
||||
offset: 0,
|
||||
num: num || 1,
|
||||
value,
|
||||
};
|
||||
case 'month':
|
||||
return {
|
||||
startDate: subMonths(startOfMonth(now), 1),
|
||||
endDate: subMonths(endOfMonth(now), 1),
|
||||
unit: 'day',
|
||||
offset: 0,
|
||||
num: num || 1,
|
||||
value,
|
||||
};
|
||||
case 'year':
|
||||
return {
|
||||
startDate: subYears(startOfYear(now), 1),
|
||||
endDate: subYears(endOfYear(now), 1),
|
||||
unit: 'month',
|
||||
offset: 0,
|
||||
num: num || 1,
|
||||
value,
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue