Sicherung vor Design-Refresh: Timezone-Fixes + neue Snapshots

- lagebild.js: Feste Europe/Berlin Zeitzone für alle Datumsanzeigen
- Neue Snapshot-Dateien (111-118) hinzugefügt
- current.json aktualisiert

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Dieser Commit ist enthalten in:
Claude Code
2026-03-07 14:04:05 +01:00
Ursprung 936d3971c9
Commit 3ea6acaab2
9 geänderte Dateien mit 6813 neuen und 2475 gelöschten Zeilen

Dateidiff unterdrückt, weil mindestens eine Zeile zu lang ist

Dateidiff unterdrückt, weil mindestens eine Zeile zu lang ist

Dateidiff unterdrückt, weil mindestens eine Zeile zu lang ist

Dateidiff unterdrückt, weil mindestens eine Zeile zu lang ist

Dateidiff unterdrückt, weil mindestens eine Zeile zu lang ist

Dateidiff unterdrückt, weil mindestens eine Zeile zu lang ist

Dateidiff unterdrückt, weil mindestens eine Zeile zu lang ist

Dateidiff unterdrückt, weil mindestens eine Zeile zu lang ist

Datei anzeigen

@@ -2,6 +2,10 @@
* AegisSight Lagebild Page v3 * AegisSight Lagebild Page v3
* Vollständige Darstellung aller Daten mit Tabs * Vollständige Darstellung aller Daten mit Tabs
*/ */
/** Feste Zeitzone fuer alle Anzeigen — NIEMALS aendern. */
var TIMEZONE = 'Europe/Berlin';
var Lagebild = { var Lagebild = {
data: null, data: null,
allSnapshots: {}, allSnapshots: {},
@@ -185,8 +189,8 @@ var Lagebild = {
ah += '<div class="article-card">'; ah += '<div class="article-card">';
ah += '<div class="article-date">'; ah += '<div class="article-date">';
if (dObj && !isNaN(dObj.getTime())) { if (dObj && !isNaN(dObj.getTime())) {
ah += '<span class="day">' + dObj.getDate() + '</span>'; ah += '<span class="day">' + dObj.toLocaleDateString('de-DE', {day:'numeric', timeZone:TIMEZONE}) + '</span>';
ah += '<span class="month">' + dObj.toLocaleDateString('de-DE', {month:'short'}) + '</span>'; ah += '<span class="month">' + dObj.toLocaleDateString('de-DE', {month:'short', timeZone:TIMEZONE}) + '</span>';
} }
ah += '</div><div class="article-info">'; ah += '</div><div class="article-info">';
ah += '<p class="article-headline">'; ah += '<p class="article-headline">';
@@ -197,7 +201,7 @@ var Lagebild = {
ah += '<span class="article-source">' + this.esc(a.source || '') + '</span>'; ah += '<span class="article-source">' + this.esc(a.source || '') + '</span>';
if (a.language) ah += '<span class="article-lang">' + a.language.toUpperCase() + '</span>'; if (a.language) ah += '<span class="article-lang">' + a.language.toUpperCase() + '</span>';
if (dObj && !isNaN(dObj.getTime())) { if (dObj && !isNaN(dObj.getTime())) {
ah += '<span>' + dObj.toLocaleDateString('de-DE', {day:'2-digit',month:'2-digit',year:'numeric'}) + ', ' + dObj.toLocaleTimeString('de-DE', {hour:'2-digit',minute:'2-digit'}) + ' Uhr</span>'; ah += '<span>' + dObj.toLocaleDateString('de-DE', {day:'2-digit',month:'2-digit',year:'numeric',timeZone:TIMEZONE}) + ', ' + dObj.toLocaleTimeString('de-DE', {hour:'2-digit',minute:'2-digit',timeZone:TIMEZONE}) + ' Uhr</span>';
} }
if (a.source_url) ah += '<span><a href="' + this.esc(a.source_url) + '" target="_blank" rel="noopener" style="color:#0f72b5;text-decoration:none;font-size:0.78rem;">Artikel lesen &rarr;</a></span>'; if (a.source_url) ah += '<span><a href="' + this.esc(a.source_url) + '" target="_blank" rel="noopener" style="color:#0f72b5;text-decoration:none;font-size:0.78rem;">Artikel lesen &rarr;</a></span>';
ah += '</div></div></div>'; ah += '</div></div></div>';
@@ -432,16 +436,18 @@ var Lagebild = {
try { try {
var d = new Date(this.toUTC(iso)); var d = new Date(this.toUTC(iso));
if (isNaN(d.getTime())) return iso; if (isNaN(d.getTime())) return iso;
var tage = ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag']; var opts = {timeZone:TIMEZONE, weekday:'long', day:'numeric', month:'long', year:'numeric', hour:'2-digit', minute:'2-digit', hour12:false};
var mon = ['Januar','Februar','M\u00e4rz','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember']; var parts = new Intl.DateTimeFormat('de-DE', opts).formatToParts(d);
return tage[d.getDay()] + ', ' + d.getDate() + '. ' + mon[d.getMonth()] + ' ' + d.getFullYear() var p = {};
+ ' um ' + ('0'+d.getHours()).slice(-2) + ':' + ('0'+d.getMinutes()).slice(-2) + ' Uhr'; parts.forEach(function(x){ p[x.type] = x.value; });
return p.weekday + ', ' + p.day + '. ' + p.month + ' ' + p.year
+ ' um ' + p.hour + ':' + p.minute + ' Uhr';
} catch(e) { return iso; } } catch(e) { return iso; }
}, },
fmtShort: function(iso) { fmtShort: function(iso) {
if (!iso) return ''; if (!iso) return '';
try { return new Date(this.toUTC(iso)).toLocaleDateString('de-DE', {day:'numeric',month:'short',hour:'2-digit',minute:'2-digit'}); } try { return new Date(this.toUTC(iso)).toLocaleDateString('de-DE', {day:'numeric',month:'short',hour:'2-digit',minute:'2-digit',timeZone:TIMEZONE}); }
catch(e) { return iso; } catch(e) { return iso; }
}, },