Wikipedia:Lua/Modul/DateTime

Vorlagenprogrammierung Diskussionen Lua Unterseiten
Modul Deutsch English

Modul: Dokumentation
Zentrale Diskussionsseite fehlt

DateTime – Modul mit Funktionen für die Interpretation von Datums- und Zeitangaben, sowie ihre Berechnung und Vergleich, schließlich die Darstellung.

Das Modul ist für solche Aufgaben vorgesehen, die die Leistungsfähigkeit der Parserfunktionen #time und #timel übersteigen.

Alle zweifelsfreien Datumsformate für den deutsch- und englischsprachigen Raum werden bei der Eingabe unterstützt.


Funktionen für Vorlagen

format

Formatiere eine Datums-/Zeitangabe.

Parameter (alle optional; umgebender Whitespace wird ignoriert):

1
Angabe von Datum oder Uhrzeit
nowjetzt (Vorgabe)
Interpretierbares Format; Beispiele siehe Testseite.
Führendes # gibt die Anzahl der Sekunden seit 1. Januar 1970 (UTC) an (Unix-Zeit).
  usw. werden als Leerzeichen behandelt.
2
Formatspezifikation
lang
Besondere Sprachbezeichnung (Kürzel gemäß ISO 639)
shift
Verschiebung
wie für #time (2. Parameter)
  • Mögliche Werte: 1 day oder 2 years ago sowie -5 months usw.
  • Die Angaben tomorrow oder yesterday wie auch next Friday sind nur möglich, wenn sich 1 auf now bezieht.
  • Anders als bei #time ist ansonsten auch die Angabe eines Basiszeitpunkts möglich.
  • Eine einzelne Zahl ohne Maßeinheit wird als Anzahl von Sekunden interpretiert, positiv/negativ, muss nicht ganzzahlig sein (Dezimalpunkt).
  • Wie bei #time kann es bei Überschreitung von Monats- oder Jahresgrenzen durch andere als glatte Intervalle zu unvorhergesehenen Ergebnissen kommen; was der 31. Mai plus 1 Monat sein soll, bleibt ohnehin unklar.
noerror
Fehlermeldung unterdrücken
  • Mögliche Werte: nichts oder 0 (Vorgabe); 1 sonst
  • Standardmäßig wird eine mit class="error" markierte Meldung gezeigt.
  • Wenn sich bei noerror=1 ein leerer Wert ergibt, war der Eingabewert ungültig.

Ergebnis: Formatierte Angabe.

  • Anders als bei der Parserfunktion führen fehlende Angaben in der Eingabe jedoch nicht dazu, dass es zu Fehlern oder unerwünschten Ergänzungen kommt; sondern der Ausgabewert wird möglichst auf die Elemente beschränkt, die auch angegeben wurden.
errCat
Ein oder mehrere Titel von Wartungskategorien.
Die Titel sind durch Pipe-Symbol (per {{!}}) zu trennen.
Beispiel: errCat=Wikipedia:Vorlagenfehler/Parameter:Datum

Standardformate

Zusätzliche Formatspezifikationen über #time hinaus (nur deutschsprachig)
Bezeichner Beispielausgabe geschütztes Leerzeichen zwischen Monatsname bis 4 Buchstaben nicht abkürzen
Punkt und Monatsname Monatsname und Jahreszahl
keine Angabe ISO-T
ISO 2024-10-29 02:08:13+01:00
ISO-T 2024-10-29T02:08:13+01:00
timestamp 20241029020813
T._Monat JJJJ hh:mm:ss Zone 29. Oktober 2024 02:08:13+01:00 ×  
dewiki 02:08, 29. Ókt. 2024
T._Monat JJJJ 29. Óktówer 2024
T._Mon JJJJ 29. Ókt. 2024
T._Mon_JJJJ 29. Ókt. 2024 ×
T._Mon4 JJJJ 29. Okt. 2024   ×
T._Mon4_JJJJ 29. Okt. 2024 ×
T._Mon4 JJJJ hh:mm:ss 29. Okt. 2024 02:08:13  
T._Mon4 JJJJ hh:mm:ss Zone 29. Okt. 2024 02:08:13+01:00
T. Mon JJJJ 29. Ókt. 2024
TT.MM.JJJJ 29.10.2024
T.M.JJJJ 29.10.2024
$JulianDate$ 2460612.5889815
$JulianDate,$ 2.460.612,5889815
$"$Text Text

Mehrere Darstellungsformate

Es ist möglich, denselben Zeitpunkt mehrfach in unterschiedlichen Formaten und somit ggf. anderen Zeitrechnungen, Kalendern, Zeitzonen darzustellen.

  • Dazu müssen die Formatangaben durch ||| voneinander getrennt werden.
  • In der Vorlagenprogrammierung wird das durch {{!}}{{!}}{{!}} erreicht.
  • Die Komponenten werden nahtlos aneinandergefügt.
  • Mit dem Sonderformat $"$ können Textblöcke eingestreut werden, damit Schlüsselwörter als Formate nutzbar sind. Gleichzeitig lässt sich die Darstellung entsprechend gliedern und beschriften.
  • Die Verwendung ist etwas komplizierter und zielt auf entsprechende Vorlagenprogrammierungen ab.

lt le eq ne ge gt

Diese Funktionen vergleichen den ersten und zweiten Parameter miteinander; als Datum/Zeit in beliebigem Format (oder „jetzt“ wenn nicht angegeben).

  • Funktionswert ist 1, wenn die Bedingung erfüllt ist, sonst „nichts“.

Die Funktionen sind im Einzelnen:

  • lt – kleiner
  • le – kleiner oder gleich
  • eq – gleich
  • ne – ungleich
  • ge – größer oder gleich
  • gt – größer

failsafe

Diese Funktion gibt die Versionsbezeichnung des Moduls aus.

  • {{#invoke:DateTime|failsafe}} ergibt 2020-09-30

Mit Angabe eines Parameters als Datum im ISO-Format wird verglichen, ob das aktuelle Modul diese Version oder später erfüllt.

  • {{#invoke:DateTime|failsafe|2001-01-01}} ergibt: »2020-09-30«
  • {{#invoke:DateTime|failsafe|2099-01-01}} ergibt: »« – leer, falls Mindestversionsbezeichnung nicht erfüllt

Ist dieser Zusatzparameter das Schlüsselwort wikidata, so ist der Wert die auf Wikidata registrierte Versionsbezeichnung (2020-09-30) oder lokal, falls dort keine gefunden.

  • Ist der Zusatzparameter das Zeichen ~, so ist das Ergebnis leer, falls Übereinstimmung der lokalen mit der auf Wikidata registrierten Versionsbezeichnung besteht (2020-09-30).

Beispiele (Testseiten)

Testseiten illustrieren praktische Beispiele.


Allgemeine Hinweise zur Einbindung von Modulen

Eine Einbindung erfolgt jeweils im Format

{{#invoke: DateTime | Funktionsname | Wert1 | Wert2 | NameX=Wert … }}

Die Parameter können wie bei Vorlagen benannt oder unbenannt sein; deren Regeln gelten analog.

Wenn unbekannte Zeichenketten von außen kommen (als Vorlagenparameter), sollte immer mit der Form 1=Wert gearbeitet werden.

Zu allgemeinen Problemen beachte die Abhilfen wie bei Vorlagen.

Wenn in einer Vorlage ein Modul verwendet wird, sollte auch immer {{Lua-Vorlage}} in der Dokumentationsseite eingebunden werden.
  1. Das gibt einem Programmierer Aufschluss, dass ein Lua-Modul benutzt wird, welche/s und ggf. welche Einzelfunktion daraus, und verlinkt auf die Dokumentation.
  2. Die Modul-Dokumentationen bekommen ein Link, in welchen Vorlagen sie eingesetzt werden, und wo bei eventuellen Funktionsänderungen Anpassungen erforderlich werden.
  3. Die Vorlage wird zur Übersicht kategorisiert in Kategorie:Vorlage:mit Lua-Programmierung.


Zu weiteren Informationen siehe Hilfe:Lua.

Bei Problemen wende dich bitte an die Vorlagen-Werkstatt, in schweren Fällen hilft auch die Lua-Werkstatt.