From 27db92d124e4c8ff7014b8c4d8abe37f1458f2e1 Mon Sep 17 00:00:00 2001 From: Claude Code Date: Mon, 9 Mar 2026 21:06:47 +0100 Subject: [PATCH] Fix: Timezone-Doppel-Offset bei naiven Timestamps behoben Naive Timestamps aus der DB (ohne Timezone-Info) wurden faelschlich als UTC interpretiert (+Z), dann nochmal +1h fuer Europe/Berlin angezeigt. Jetzt wird der korrekte Berlin-Offset (CET/CEST) dynamisch ermittelt. Co-Authored-By: Claude Opus 4.6 --- lagebild/lagebild.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/lagebild/lagebild.js b/lagebild/lagebild.js index 4bb0d7b..f8f40c2 100644 --- a/lagebild/lagebild.js +++ b/lagebild/lagebild.js @@ -1048,7 +1048,17 @@ var Lagebild = { if (!s) return s; s = String(s).trim(); if (/[Zz]$/.test(s) || /[+-]\d{2}:?\d{2}$/.test(s)) return s; - return s.replace(' ', 'T') + 'Z'; + // Naive Timestamps aus der DB sind Europe/Berlin Lokalzeit. + // Korrekten UTC-Offset ermitteln (CET +01:00 / CEST +02:00). + var iso = s.replace(' ', 'T'); + var temp = new Date(iso + 'Z'); + var utc = new Date(temp.toLocaleString('en-US', { timeZone: 'UTC' })); + var local = new Date(temp.toLocaleString('en-US', { timeZone: TIMEZONE })); + var offMin = (local - utc) / 60000; + var sign = offMin >= 0 ? '+' : '-'; + var h = String(Math.floor(Math.abs(offMin) / 60)).padStart(2, '0'); + var m = String(Math.abs(offMin) % 60).padStart(2, '0'); + return iso + sign + h + ':' + m; }, fmtDT: function(iso) {