diff --git a/svelte-ui/src/pages/LogsPage.svelte b/svelte-ui/src/pages/LogsPage.svelte
index e7aad56..89a2770 100644
--- a/svelte-ui/src/pages/LogsPage.svelte
+++ b/svelte-ui/src/pages/LogsPage.svelte
@@ -2,13 +2,13 @@
import LogEntry from "../components/LogEntry.svelte";
import type { LogResult } from "../models/log";
import logStore from "../stores/logs";
- import { endOfDay, endOfWeek, formatFormTime, formatWeekdayDate, startOfDay, startOfWeek } from "../utils/time";
+ import { addDays, endOfDay, endOfWeek, formatFormTime, formatWeekdayDate, startOfDay, startOfWeek } from "../utils/time";
import EmptyList from "../components/EmptyList.svelte";
import RefreshSelection from "../components/RefreshSelection.svelte";
import DateRangeSelect from "../components/DateRangeSelect.svelte";
import EveryMinute from "../components/EveryMinute.svelte";
- let groupedLogs: {day: number, text: string, logs: LogResult[]}[] = [];
+ let groupedLogs: {day: Date, text: string, logs: LogResult[]}[] = [];
let minTime = formatFormTime($logStore.filter.minTime || startOfDay(new Date(Date.now() - 86400000 * 7)));
let maxTime = formatFormTime($logStore.filter.maxTime || endOfDay(new Date()));
let emptyMessage = `No logs since ${formatWeekdayDate(minTime)}.`;
@@ -50,20 +50,21 @@
groupedLogs = [];
if ($logStore.logs.length > 0) {
- const firstUtc = Math.floor(Date.parse($logStore.logs[0].loggedTime) / 86400000) * 86400000;
- const todayUtc = Math.floor(now.getTime() / 86400000) * 86400000;
- const first = firstUtc + (now.getTimezoneOffset() * 60000);
- const today = todayUtc + (now.getTimezoneOffset() * 60000);
- const yesterday = today - 86400000;
- const tomorrow = today + 86400000;
-
- let currentDay = first;
+
+ const today = new Date();
+ const tomorrow = addDays(today, 1);
+ const yesterday = addDays(today, -1);
+
+ let current = new Date($logStore.logs[0].loggedTime);
+
let remainingLogs = $logStore.logs;
while (remainingLogs.length > 0) {
+ const currentDay = startOfDay(current);
+
const currentLogs: LogResult[] = [];
for (const log of remainingLogs) {
- if (Date.parse(log.loggedTime) >= currentDay) {
+ if (Date.parse(log.loggedTime) >= currentDay.getTime()) {
currentLogs.push(log);
} else {
break;
@@ -73,19 +74,19 @@
if (currentLogs.length > 0) {
remainingLogs = remainingLogs.slice(currentLogs.length);
- let text = formatWeekdayDate(currentDay);
- if (currentDay === tomorrow) {
+ let text = formatWeekdayDate(current);
+ if (current.getTime() === tomorrow.getTime()) {
text = "Tomorrow";
- } else if (currentDay === today) {
+ } else if (current.getTime() === today.getTime()) {
text = "Today";
- } else if (currentDay === yesterday) {
+ } else if (current.getTime() === yesterday.getTime()) {
text = "Yesterday";
}
- groupedLogs.push({day: currentDay, text, logs: currentLogs});
+ groupedLogs.push({day: current, text, logs: currentLogs});
}
- currentDay -= 86400000;
+ current = addDays(current, -1);
}
}
}
@@ -96,7 +97,7 @@