DateFormField zeigt falsche Zeit an

  • Affected Version
    WoltLab Suite 5.3

    Im WSC 5.3 RC 1 wird beim Hinzufügen eines DateFormField mit Zeitunterstützung und angegebener Zeit das Datum und die Zeitangabe im Selector der Webseite nicht richtig dargestellt, bis man auf das Feld klickt. Das Feld wird im Allgemeinen mit

    Code
                        DateFormField::create("releaseDate")
                            ->value(time())
                            ->supportTime(true)

    erstellt und wird wie folgt im Formular angezeigt:


    Zeitpunkt des Aufrufs der Seite war 00:38 Uhr am 24. Oktober. Nach Klick auf das Feld sieht das ganze dann so aus:


    Gruß

    ilou

  • Zusatz: Die Zeit wird anscheinend auch nur dann geändert, wenn dazu noch earliestDate(time()) gesetzt wird. Ohne die Angabe von earliestDate wird immer 00:00 Uhr angezeigt, obwohl mit value(time()) ja eigentlich die aktuelle Uhrzeit auch angezeigt werden sollte.

  • Hey, danke für die Antwort. Ich konnte das ganze jetzt auf folgendes eingrenzen:


    Wird das Formular so erstellt, dass supportTime() vor value() aktiviert wird, funktioniert es. Wird das Formular allerdings andersrum, wie folgend, erstellt, so funktioniert das ganze nicht mehr:

    PHP
            $this->form->appendChild(
                FormContainer::create("test")
                    ->appendChildren([
                        DateFormField::create("testDate")
                            ->value(time())
                            ->supportTime()
                    ])
            );

    Wird jetzt noch earliestDate() angegeben, so wird beim Klick auf das Input-Feld die Zeit richtig reingeladen.


    Beispiel: Erstellt man das Formular mit

    erhält man vor dem Anklicken eines Feldes folgendes angezeigtes Formular:


    Hier wurde bei den Feldern 1, 2 und 4 der Wert gesetzt, bevor Zeit-Support aktiviert wurde.


    Nach Anklicken der einzelnen Felder, um die Auswirkung von earliestDate() wirksam zu machen, sieht das dann so aus:

    Jetzt beinhalten die Felder 1 und 2 ebenfalls die richtige Zeit, die hier augenscheinlich durch das earliestDate kommen.


    Feld 4 enthält nach wie vor nur die Uhrzeit 00:00 Uhr, weil hier der Wert gesetzt wurde, bevor Zeit-Support aktiviert wurde.


    Der Fehler tritt außerdem auch im WSC 5.3 RC3 auf.


    Gruß

    ilou

    • Official Post

    Bei FormBuilder sollten Werte immer erst nach der Konfiguration des Feldes gesetzt werden. Hier sollte also value() erst nach supportTime() aufgerufen werden. Mit dem nächsten Update wird eine Exception geworfen, sobald supportTime() nach value() aufgerufen wird.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!