Murphys Gesetz des Tages
Zeigt jeden Tag ein anderes Murphys Gesetz auf eurer Homepage — komplett ohne fremden Server.
Ihr kennt das sicher: Man stellt sich an der Supermarktkasse an — und die Nachbarschlange ist schneller. Das Butterbrot fällt auf die bestrichene Seite, und wenn etwas schiefgehen kann, dann geht es auch schief. Solche Alltagsweisheiten heißen „Murphys Gesetze", benannt nach dem US-Ingenieur Edward A. Murphy, auf dessen Stoßseufzer bei Raketenschlitten-Versuchen Ende der 1940er-Jahre der berühmte Grundsatz zurückgeht.
Dieses Script bringt jeden Tag ein anderes dieser Gesetze auf eure Homepage. Oben in der Demo seht ihr das Gesetz des heutigen Tages — um Mitternacht wechselt es automatisch, ohne dass ihr etwas tun müsst. Alle Besucher eurer Seite sehen am selben Tag denselben Spruch.
In der alten Fassung lud der Einbau-Code den Spruch von unserem Server nach. Die modernisierte Fassung bringt ihre Spruchliste gleich mit: 20 klassische Murphys Gesetze stecken direkt im Script, es läuft also komplett auf eurer eigenen Seite — und ihr könnt die Liste beliebig erweitern.
Nach demselben Tagesprinzip funktionieren auch das Zitat des Tages und die Witze des Tages; für Rätselfreunde gibt es außerdem die Scherzfragen.
Das ist das Gesetz des heutigen Tages — um Mitternacht erscheint automatisch das nächste.
So funktioniert das Script
Das Script hat drei Teile: eine Liste mit 20 Gesetzen, eine Rechnung, die aus dem heutigen Datum den Tag im Jahr ermittelt, und eine Zeile, die das passende Gesetz in die Seite schreibt. Es gibt keine Knöpfe — das Script läuft einmal beim Laden der Seite.
const gesetze = [
"Wenn etwas schiefgehen kann, dann geht es auch schief.",
"Nichts ist so einfach, wie es aussieht.",
// …
];
Die Gesetze stehen in einem Array (einer Liste). Die Reihenfolge bestimmt, an welchem Tag welcher Spruch erscheint — inhaltlich ist sie egal, ihr könnt die Liste also beliebig umsortieren oder erweitern.
const heute = new Date();
const tagImJahr = Math.floor(
(Date.UTC(heute.getFullYear(), heute.getMonth(), heute.getDate()) -
Date.UTC(heute.getFullYear(), 0, 1)) / 86400000
);
new Date() liefert das aktuelle Datum samt Uhrzeit. Um daraus den wievielten Tag des Jahres zu bekommen, rechnet das Script: Millisekunden von heute minus Millisekunden vom 1. Januar, geteilt durch 86 400 000 (so viele Millisekunden hat ein Tag). Date.UTC() liefert diese Millisekundenwerte — und zwar bewusst in Weltzeit: Würde man mit der Ortszeit rechnen, käme durch die Sommerzeit-Umstellung eine Stunde Differenz dazwischen, und die Rechnung würde in den Sommermonaten um einen Tag danebenliegen. Am 1. Januar kommt 0 heraus, am 2. Januar 1 und so weiter.
const gesetz = gesetze[tagImJahr % gesetze.length];
Das Prozentzeichen ist der Modulo-Operator: Er liefert den Rest einer Division. tagImJahr % 20 ergibt also immer eine Zahl von 0 bis 19 — perfekt als Position in der Liste. So wandert das Script Tag für Tag durch alle Gesetze und beginnt nach 20 Tagen wieder von vorn. Weil die Rechnung nur vom Datum abhängt (und nicht von Math.random()), sehen alle Besucher am selben Tag dasselbe Gesetz.
document.getElementById("mg-gesetz").textContent = gesetz;
Zum Schluss sucht sich das Script das Ausgabe-Element anhand seiner id und setzt den Spruch per textContent ein. Wichtig: Das Script steht im Code unter dem Ausgabe-Element, damit dieses schon existiert, wenn das Script läuft.
Zum Anpassen: Ergänzt einfach eigene Gesetze in der Liste — je mehr Einträge, desto länger dauert es, bis sich ein Spruch wiederholt. Durch gesetze.length passt sich die Rechnung automatisch an die Länge eurer Liste an.
Script für die eigene Homepage
Kopiert euch den kompletten Code und fügt ihn an der Stelle eurer Seite ein, an der das Script erscheinen soll. Er läuft ohne weitere Dateien und ohne fremde Server.