Zwei Pruefungen rechneten in UTC und schlugen abends falschen Alarm

pruef-zeitraum und pruef-highlights bildeten ihren Tagesstempel mit
toISOString(). Das ist UTC. Zwischen 22:00 und Mitternacht deutscher
Zeit ist das schon der naechste Tag -- die Pruefungen verglichen dann
einen Eintrag von heute mit dem Datum von morgen und meldeten einen
Fehler, wo keiner war.

Der Zeitraum-Filter im Haus rechnet richtig; er benutzt tagLokal() aus
helfer-zeit.mjs. Nur die Pruefungen darueber hatten ihre eigene, falsche
Rechnung. Jetzt benutzen sie denselben Helfer wie der Code, den sie
pruefen -- damit koennen die beiden gar nicht mehr auseinanderlaufen.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-09-21 11:44:55 +02:00
co-authored by Claude Opus 5
parent acd3e1f385
commit 782a9116f2
2 changed files with 21 additions and 7 deletions
+8 -1
View File
@@ -27,6 +27,7 @@
import { mkdtempSync, rmSync } from "node:fs";
import { tmpdir } from "node:os";
import { join } from "node:path";
import { tagLokal } from "./helfer-zeit.mjs";
import { eigenerPort } from "./helfer-port.mjs";
import { notbremse } from "./helfer-notbremse.mjs";
@@ -83,7 +84,13 @@ const einf = (titel, kanal, wannTage) => d.prepare(
+ " datum, quelle_kanal, erstellt_von, erstellt)"
+ " VALUES (?,?,?,?,?,?,?,?,?,?)")
.run("highlight", "clip", titel, "", "offen", "mittel",
vorTagen(wannTage).toISOString().slice(0, 10), kanal, 1,
/* Das TAGESDATUM ueber den Hausschluessel, nicht ueber UTC:
`vorTagen` verankert zwar um neun Uhr und waere damit richtig,
aber das sieht man der Zeile nicht an -- pruef-struktur hat sie
als UTC-Rechnung gemeldet. Ein Fehlalarm ist schlimmer als keine
Pruefung. Der volle Zeitstempel eine Zeile tiefer darf bleiben:
Dort ist UTC richtig, weil er eine ZEIT ist und keinen Tag. */
tagLokal(-wannTage), kanal, 1,
vorTagen(wannTage).toISOString());
einf("Heute DogFather", "dogfather", 0);