fixed timestamp handeling

This commit is contained in:
pandadev 2024-07-05 14:20:26 +02:00
parent 2093ea7274
commit b65121148f
No known key found for this signature in database
GPG key ID: C39629DACB8E762F

31
app.vue
View file

@ -69,16 +69,22 @@ const os = platform();
const groupedHistory = computed(() => { const groupedHistory = computed(() => {
const now = new Date(); const now = new Date();
const today = new Date(now.getFullYear(), now.getMonth(), now.getDate()); const today = new Date(now.getFullYear(), now.getMonth(), now.getDate());
const yesterday = new Date(today);
yesterday.setDate(yesterday.getDate() - 1); const getWeekNumber = (d) => {
const thisWeek = new Date(today); d = new Date(Date.UTC(d.getFullYear(), d.getMonth(), d.getDate()));
thisWeek.setDate(thisWeek.getDate() - 7); d.setUTCDate(d.getUTCDate() + 4 - (d.getUTCDay() || 7));
const thisYear = new Date(now.getFullYear(), 0, 1); const yearStart = new Date(Date.UTC(d.getUTCFullYear(), 0, 1));
return Math.ceil((((d - yearStart) / 86400000) + 1) / 7);
};
const thisWeek = getWeekNumber(now);
const thisYear = now.getFullYear();
const groups = [ const groups = [
{ label: 'Today', items: [] }, { label: 'Today', items: [] },
{ label: 'Yesterday', items: [] }, { label: 'Yesterday', items: [] },
{ label: 'This Week', items: [] }, { label: 'This Week', items: [] },
{ label: 'Last Week', items: [] },
{ label: 'This Year', items: [] }, { label: 'This Year', items: [] },
{ label: 'Last Year', items: [] }, { label: 'Last Year', items: [] },
]; ];
@ -89,16 +95,21 @@ const groupedHistory = computed(() => {
filteredItems.forEach(item => { filteredItems.forEach(item => {
const itemDate = new Date(item.timestamp); const itemDate = new Date(item.timestamp);
if (itemDate >= today) { const itemWeek = getWeekNumber(itemDate);
const itemYear = itemDate.getFullYear();
if (itemDate.toDateString() === today.toDateString()) {
groups[0].items.push(item); groups[0].items.push(item);
} else if (itemDate >= yesterday) { } else if (itemDate.toDateString() === new Date(today.getTime() - 86400000).toDateString()) {
groups[1].items.push(item); groups[1].items.push(item);
} else if (itemDate >= thisWeek) { } else if (itemYear === thisYear && itemWeek === thisWeek) {
groups[2].items.push(item); groups[2].items.push(item);
} else if (itemDate >= thisYear) { } else if (itemYear === thisYear && itemWeek === thisWeek - 1) {
groups[3].items.push(item); groups[3].items.push(item);
} else { } else if (itemYear === thisYear) {
groups[4].items.push(item); groups[4].items.push(item);
} else {
groups[5].items.push(item);
} }
}); });