From 03af5fcfb84d39d7bb4264d4bd793f01f43f7e22 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 30 Sep 2026 12:32:08 +0000 Subject: [PATCH] Serverpuls: Zeitzone in Warnungen Co-Authored-By: Claude Opus 5.5 --- src/lib/serverpulsFormat.js | 6 ++++++ src/pages/ServerpulsPage.jsx | 9 ++------- tests/unit/serverpulsFormat.test.mjs | 7 +++++++ 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/lib/serverpulsFormat.js b/src/lib/serverpulsFormat.js index 1d2309c..082a296 100644 --- a/src/lib/serverpulsFormat.js +++ b/src/lib/serverpulsFormat.js @@ -89,3 +89,9 @@ export function formatLegendTime(sec) { if (sec === null || sec === undefined) return '–' return F.legend.format(new Date(sec * 1000)) } + +// "seit"-Zeitpunkt in Warnungen, immer Berliner Zeit. +export function formatSince(ts) { + if (!ts) return '' + return new Date(ts).toLocaleString('de-DE', { dateStyle: 'short', timeStyle: 'short', timeZone: 'Europe/Berlin' }) +} diff --git a/src/pages/ServerpulsPage.jsx b/src/pages/ServerpulsPage.jsx index c3e2d8a..6f227bf 100644 --- a/src/pages/ServerpulsPage.jsx +++ b/src/pages/ServerpulsPage.jsx @@ -4,7 +4,7 @@ import { useAuth } from '../context/AuthContext' import { PageHeader } from '../components/ui' import { serverpulsApi } from '../lib/serverpulsApi' import { - ageLabel, formatBytes, formatNumber, formatPct, usedPct, + ageLabel, formatBytes, formatNumber, formatPct, formatSince, usedPct, } from '../lib/serverpulsFormat' import Chart from '../components/serverpuls/Chart' import Sparkline from '../components/serverpuls/Sparkline' @@ -31,11 +31,6 @@ const METRICS = [ const LEVEL_TEXT = { ok: 'Alles ok', medium: 'Warnungen', critical: 'Critical' } const LEVEL_LABEL = { critical: 'Critical', medium: 'Medium', low: 'Low' } -function fmtSince(ts) { - if (!ts) return '' - return new Date(ts).toLocaleString('de-DE', { dateStyle: 'short', timeStyle: 'short' }) -} - // Verlaufswerte in Anzeigewerte umrechnen (RAM: frei -> belegt). function displayPoints(metric, points, total) { if (metric !== 'ram') return points @@ -279,7 +274,7 @@ export default function ServerpulsPage() { {LEVEL_LABEL[a.level] || a.level} {a.title} {a.value} - seit {fmtSince(a.since)} + seit {formatSince(a.since)} ))} diff --git a/tests/unit/serverpulsFormat.test.mjs b/tests/unit/serverpulsFormat.test.mjs index d72ae46..8baae31 100644 --- a/tests/unit/serverpulsFormat.test.mjs +++ b/tests/unit/serverpulsFormat.test.mjs @@ -52,3 +52,10 @@ test('Zeitachse: deutsche Ausgabe in Europe/Berlin', () => { assert.equal(formatLegendTime(t), '30.09.2026, 11:20') assert.equal(formatLegendTime(null), '–') }) + +test('formatSince: Europe/Berlin, unabhängig von der Prozess-Zeitzone', async () => { + const { formatSince } = await loadModule('src/lib/serverpulsFormat.js') + assert.equal(formatSince(Date.UTC(2026, 6, 1, 10, 0, 0)), '01.07.26, 12:00') + assert.equal(formatSince(Date.UTC(2026, 0, 1, 10, 0, 0)), '01.01.26, 11:00') + assert.equal(formatSince(0), '') +})