Wikipedia Diskussion:Lua/Modul/DateTime

aus Wikipedia, der freien Enzyklopädie
Letzter Kommentar: vor 1 Jahr von PerfektesChaos in Abschnitt Fehlerhafte Ausgabe
Zur Navigation springen Zur Suche springen
Vorlagenprogrammierung Diskussionen Lua Test Unterseiten
Modul Deutsch English

Modul: Dokumentation

_

Gewünschte oder benötigte Features[Quelltext bearbeiten]

Ich schlage vor, das Modul mit geeigneten Vorlagen zugänglich zu machen. Gewünschte Funktionen sind:

  • Deutsche Texte (Strings). Hier in de:WP schreibt man "März" und nicht "March".
  • Eingabeformate: Kalender, Julianisches Datum, ISO-Datum inkl. Format "JJJJ-DDD"
  • Umrechnung zwischen den Formaten.
  • Differenz zwischen zwei realen Zeitpunkten berechnen und zurückgeben (als JD oder in Zeiteinheiten).
  • Addition oder Subtraktion einer Zeitspanne zu einem Realzeitpunkt.
  • Addition oder Subtraktion zweier Zeitangaben, also z.3 B. Summe von 3 d 14 h 59 m 30,63 s und 5 d 3 h 41  m 0,91 s
  • Berechnung des Osterdatums

Das wären m.E. mal einige wichtige. Es wäre auch gut, eine leicht verständliche (!) Beschreibung der exportierten Funktionen zu haben. ÅñŧóñŜûŝî (Ð) 13:16, 8. Nov. 2015 (CET)Beantworten

  • Deutsche Texte (Strings)
    • ??? – Ausgabeformate: siehe außerdem Wikipedia:Lua/Modul/DateTime/Test/format; vielsprachig; standardmäßig deutsch, aber auch italienisch oder brasilianisches Portugiesisch möglich.
    • Eingabeformate: Es wird immer Englisch und außerdem die lokale Landessprache deutsch verstanden.
    • Wo siehst du was von "March"?
  • Julianisches Datum
    • Julianischer Kalender: Ist strukturell vorgesehen, aber zurzeit noch keine Notwendigkeit, den Vorlagen Konkurrenz zu machen, da diese gut klarkommen.
    • Julianisches Datum: Ist strukturell vorgesehen, aber zurzeit noch keine Notwendigkeit, den Vorlagen Konkurrenz zu machen, da diese gut klarkommen.
    • JJJJ-DDD – prinzipiell möglich als doy, aber magere PHP-Bibliotheksunterstützung und deshalb aufwändig nach Schaltjahr usw. in Monate und Tage umzurechnen. Zurzeit sehe ich keinen Anwendungsbereich, wo das einen Vorteil bringen würde oder es im Projekt benötigt wird. Sowohl Ausgabe wie Eingabe mühsam.
  • Umrechnung zwischen den Formaten
    • ??? – Gib den Wert in irgendeinem Format de/en vor und lass ihn dir x-beliebig anzeigen.
  • Addition oder Subtraktion einer Zeitspanne zu einem Realzeitpunkt.
    • ??? – Parametershift; vorhanden. Siehe BETA – hier noch nicht verlinkt.
  • Addition oder Subtraktion zweier Zeitangaben
    • Wer braucht das wann wozu dynamisch?
    • Geht bereits als Berechnung zu einem fiktiven „Jahr Null“.
    • Allgemein auch ziemliche Performance-Fresser; und die meisten, die sowas anwenden, erzählen einem, dass sie schon seit 1234 Tagen in der WP angemeldet sind.
  • Berechnung des Osterdatums
    • Bin nicht bibelfest.
    • Zurzeit keine Notwendigkeit, den Vorlagen Konkurrenz zu machen, da diese gut klarkommen.
    • Wenn, dann allenfalls ausgegliedert als Zusatzmodul, damit es nicht in jede Seite eingebunden werden muss, und dann auch Yom Kippur und das chinesische Neujahrsfest.
BETA ist aktueller.
VG --PerfektesChaos 13:50, 8. Nov. 2015 (CET)Beantworten

Testbeispiele[Quelltext bearbeiten]

Die Beispiele auf der Testseite scheinen nicht das zu testen, was sie sollen. Dort wird über {{../f|…}} irgendwie die format-Funktion aufgerufen. Ein direkter Aufruf von {{#invoke:DateTime|format|1337-01-23|T._Monat JJJJ|lang=fr}} (LMT._janv.13371am31 JJJJ) liefert nicht das gewünschte Ergebnis. Was mache ich falsch?— Sivizius (Diskussion) 06:34, 21. Okt. 2019 (CEST)Beantworten

Bei uns hier ist kein Eingabeformat |lang=fr → „Französisch“ definiert.
T._Monat JJJJ ist ein deutschsprachiges Ausgabeformat.
Auf den Testseiten gibt es keine Beispiele für französische Ein- oder Ausgabeformate.
Deine Eingabe lautet 1337-01-23 und das ist ISO und das ist unabhängig von Sprachvereinbarungen |lang= und geht immer.
|lang=fr würde in dem Moment interessant werden, wenn février oder août interpretiert werden sollen.
Bei uns sind die Eingabeformate en (geht immer und überall) sowie de definiert.
VG --PerfektesChaos 12:41, 21. Okt. 2019 (CEST)Beantworten
Gut, fr braucht man hier wohl eher weniger, aber de-AT, wie explizit in der Dokumentation genannt, wäre schon nützlich, aber {{#invoke:DateTime|format|1337-01-23|T._Monat JJJJ|lang=de-AT}} (23. Jänner 1337) macht keinen Unterschied.— Sivizius (Diskussion) 14:10, 21. Okt. 2019 (CEST)Beantworten

Fehlerhafte Ausgabe[Quelltext bearbeiten]

"{{#invoke:DateTime|format||ISO|noerror=1}}" ergibt: "-05-"

Bei leerer Eingabe müsste eigentlich eine leere Zeichenkette ausgegeben werden!

So muss man, um diesen Programmfehler auszugleichen, zur Gültigkeitsprüfung des Datums extra ein #if: vor der Benutzung dieses Moduls einbauen. --Wiki1939 (Diskussion) 15:04, 14. Nov. 2022 (CET)Beantworten

Umseitig steht nicht, dass ein leerer Wert zulässig wäre.
Wenn überhaupt, dann wäre die Vorgabe now – da du dich aber mit der Zitation von Publikationen beschäftigst, die mutmaßlich vor mehr als einer Minute oder drei Tagen erschienen sind, kannst du mit now auch nichts anfangen. Wenn ein Wert für ein date= nicht vorhanden ist, also der Parameter leer angegeben ist, dann ist schlicht nix da, das du in einer Zitation formatieren könntest.
2024-05-07T07:41:15+02:00 funktioniert hingegen durch Weglassen.
2024-05-07 07:41:15+02:00 wäre dein korrigierter Beispielfall.
{{#if: {{{date|}}} | {{#invoke:DateTime|format|{{{date}}} | wäre also in deiner Programmierung zu verwenden.
VG --PerfektesChaos 16:26, 14. Nov. 2022 (CET)Beantworten