mirror of
https://github.com/umami-software/umami.git
synced 2026-02-08 06:37:18 +01:00
Weekly session data.
This commit is contained in:
parent
fc1fc5807e
commit
53d8548909
13 changed files with 331 additions and 5 deletions
|
|
@ -34,6 +34,7 @@ import {
|
|||
addWeeks,
|
||||
subWeeks,
|
||||
endOfMinute,
|
||||
isSameDay,
|
||||
} from 'date-fns';
|
||||
import { getDateLocale } from 'lib/lang';
|
||||
import { DateRange } from 'lib/types';
|
||||
|
|
@ -336,3 +337,16 @@ export function getCompareDate(compare: string, startDate: Date, endDate: Date)
|
|||
|
||||
return { startDate: subMinutes(startDate, diff), endDate: subMinutes(endDate, diff) };
|
||||
}
|
||||
|
||||
export function getDayOfWeekAsDate(dayOfWeek: number) {
|
||||
const startOfWeekDay = startOfWeek(new Date());
|
||||
const daysToAdd = [0, 1, 2, 3, 4, 5, 6].indexOf(dayOfWeek);
|
||||
let currentDate = addDays(startOfWeekDay, daysToAdd);
|
||||
|
||||
// Ensure we're not returning a past date
|
||||
if (isSameDay(currentDate, startOfWeekDay)) {
|
||||
currentDate = addDays(currentDate, 7);
|
||||
}
|
||||
|
||||
return currentDate;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -81,6 +81,18 @@ function getDateSQL(field: string, unit: string, timezone?: string): string {
|
|||
}
|
||||
}
|
||||
|
||||
function getDateWeeklySQL(field: string) {
|
||||
const db = getDatabaseType();
|
||||
|
||||
if (db === POSTGRESQL) {
|
||||
return `EXTRACT(DOW FROM ${field})`;
|
||||
}
|
||||
|
||||
if (db === MYSQL) {
|
||||
return `DAYOFWEEK(${field})-1`;
|
||||
}
|
||||
}
|
||||
|
||||
export function getTimestampSQL(field: string) {
|
||||
const db = getDatabaseType();
|
||||
|
||||
|
|
@ -284,6 +296,7 @@ export default {
|
|||
getCastColumnQuery,
|
||||
getDayDiffQuery,
|
||||
getDateSQL,
|
||||
getDateWeeklySQL,
|
||||
getFilterQuery,
|
||||
getSearchParameters,
|
||||
getTimestampDiffSQL,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue