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) {