utc dates
This commit is contained in:
7
package-lock.json
generated
7
package-lock.json
generated
@@ -9,6 +9,7 @@
|
|||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@date-fns/tz": "^1.2.0",
|
"@date-fns/tz": "^1.2.0",
|
||||||
|
"@date-fns/utc": "^2.1.0",
|
||||||
"chart.js": "^4.4.9",
|
"chart.js": "^4.4.9",
|
||||||
"chartjs-adapter-date-fns": "^3.0.0",
|
"chartjs-adapter-date-fns": "^3.0.0",
|
||||||
"date-fns": "^4.1.0",
|
"date-fns": "^4.1.0",
|
||||||
@@ -78,6 +79,12 @@
|
|||||||
"integrity": "sha512-LBrd7MiJZ9McsOgxqWX7AaxrDjcFVjWH/tIKJd7pnR7McaslGYOP1QmmiBXdJH/H/yLCT+rcQ7FaPBUxRGUtrg==",
|
"integrity": "sha512-LBrd7MiJZ9McsOgxqWX7AaxrDjcFVjWH/tIKJd7pnR7McaslGYOP1QmmiBXdJH/H/yLCT+rcQ7FaPBUxRGUtrg==",
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
|
"node_modules/@date-fns/utc": {
|
||||||
|
"version": "2.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@date-fns/utc/-/utc-2.1.0.tgz",
|
||||||
|
"integrity": "sha512-176grgAgU2U303rD2/vcOmNg0kGPbhzckuH1TEP2al7n0AQipZIy9P15usd2TKQCG1g+E1jX/ZVQSzs4sUDwgA==",
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
"node_modules/@esbuild/aix-ppc64": {
|
"node_modules/@esbuild/aix-ppc64": {
|
||||||
"version": "0.24.2",
|
"version": "0.24.2",
|
||||||
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz",
|
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz",
|
||||||
|
|||||||
@@ -45,6 +45,7 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@date-fns/tz": "^1.2.0",
|
"@date-fns/tz": "^1.2.0",
|
||||||
|
"@date-fns/utc": "^2.1.0",
|
||||||
"chart.js": "^4.4.9",
|
"chart.js": "^4.4.9",
|
||||||
"chartjs-adapter-date-fns": "^3.0.0",
|
"chartjs-adapter-date-fns": "^3.0.0",
|
||||||
"date-fns": "^4.1.0",
|
"date-fns": "^4.1.0",
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import Chart from 'chart.js/auto';
|
import Chart from 'chart.js/auto';
|
||||||
import { onMount, onDestroy } from 'svelte';
|
import { onMount, onDestroy } from 'svelte';
|
||||||
import { compareAsc } from 'date-fns';
|
import { compareAsc, isSameDay } from 'date-fns';
|
||||||
import { formatInTimeZone } from 'date-fns-tz';
|
import { formatInTimeZone } from 'date-fns-tz';
|
||||||
import 'chartjs-adapter-date-fns';
|
import 'chartjs-adapter-date-fns';
|
||||||
import type { StateHistory } from '$models/config';
|
import type { StateHistory } from '$models/config';
|
||||||
@@ -230,16 +230,18 @@
|
|||||||
if (!acc[date]) {
|
if (!acc[date]) {
|
||||||
acc[date] = {
|
acc[date] = {
|
||||||
count: 0,
|
count: 0,
|
||||||
sessions: [session]
|
sessions: []
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if this session is part of a sequence
|
// Check if this session is part of a sequence
|
||||||
if (index > 0) {
|
if (index > 0) {
|
||||||
const prevSession = stateHistory[index - 1];
|
const prevSession = stateHistory[index - 1];
|
||||||
const prevDate = formatDate(prevSession.dateCreated, 'yyyy-MM-dd');
|
|
||||||
|
|
||||||
if (date === prevDate && prevSession.session === session.session) {
|
if (
|
||||||
|
isSameDay(session.dateCreated, prevSession.dateCreated) &&
|
||||||
|
prevSession.session === session.session
|
||||||
|
) {
|
||||||
return acc;
|
return acc;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -261,6 +263,7 @@
|
|||||||
const sortedEntries = Object.entries(dailyActivity).sort(
|
const sortedEntries = Object.entries(dailyActivity).sort(
|
||||||
([a], [b]) => new Date(a).getTime() - new Date(b).getTime()
|
([a], [b]) => new Date(a).getTime() - new Date(b).getTime()
|
||||||
);
|
);
|
||||||
|
console.log(sortedEntries);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
labels: sortedEntries.map(([date]) => formatDate(date, 'MMM dd')),
|
labels: sortedEntries.map(([date]) => formatDate(date, 'MMM dd')),
|
||||||
|
|||||||
@@ -7,12 +7,13 @@ import type { RequestEvent } from '@sveltejs/kit';
|
|||||||
import { configFile, type Config, type Session } from '$models/config';
|
import { configFile, type Config, type Session } from '$models/config';
|
||||||
import { set } from 'lodash-es';
|
import { set } from 'lodash-es';
|
||||||
import { subDays, formatISO } from 'date-fns';
|
import { subDays, formatISO } from 'date-fns';
|
||||||
|
import { UTCDate } from '@date-fns/utc';
|
||||||
|
|
||||||
export const load = async (event: RequestEvent) => {
|
export const load = async (event: RequestEvent) => {
|
||||||
const isAuth = await checkAuth(event);
|
const isAuth = await checkAuth(event);
|
||||||
if (!isAuth) return redirect(308, '/login');
|
if (!isAuth) return redirect(308, '/login');
|
||||||
if (!event.params.id) return redirect(308, '/dashboard');
|
if (!event.params.id) return redirect(308, '/dashboard');
|
||||||
const today = new Date();
|
const today = new UTCDate();
|
||||||
const endDate = formatISO(today);
|
const endDate = formatISO(today);
|
||||||
const startDate = formatISO(subDays(today, 30));
|
const startDate = formatISO(subDays(today, 30));
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user