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 <noreply@anthropic.com>
Dieser Commit ist enthalten in:
@@ -1048,7 +1048,17 @@ var Lagebild = {
|
|||||||
if (!s) return s;
|
if (!s) return s;
|
||||||
s = String(s).trim();
|
s = String(s).trim();
|
||||||
if (/[Zz]$/.test(s) || /[+-]\d{2}:?\d{2}$/.test(s)) return s;
|
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) {
|
fmtDT: function(iso) {
|
||||||
|
|||||||
In neuem Issue referenzieren
Einen Benutzer sperren