Datum & Uhrzeit Bestellbestätigung falsch

Von wo genau nimmt Shopware die UTC? Bzw. - {{ order.orderDateTime|date }}

Server, PhP, MySQL sind richtig eingestellt und auf Deutsch.

Der Shop läuft auf einen eigenes Dedizierte Server mit Debian 9.

Allerdings gibt {{ order.orderDateTime|date }} Datum (March) also März auf englisch, und -2:00

Es handelt sich um Shopware 6.1.4.

Hi, hatte das gleiche Problem – habe in allen E-Mail-Vorlagen “date” durch date(“d.m.Y H:i”) ersetzt.
Hoffe das hilft dir!
Viele Grüße
ngdot

Oh, sehe gerade das behebt auch nur die Formatierung, die Uhrzeit ist immer noch falsch.
Die Bestellzeit unter „Bestellung“ ist aber korrekt bei mir, wie siehts bei dir aus?

Um jedenfalls die Formatierung auf Deutsch zu erhalten, änderst du den Code wie folgt ab: {{ order.orderDateTime|date(„d.m.Y H:i“) }}
Für die Uhrzeitkorrektur habe ich noch keine Lösung.

1 Like

Also vielen Dank!

Jetzt sieht es so aus: Datum: 31.03.2020 11:56

Bei erfolgter Bestellung um 13:56 Uhr.

Also der Format ist schon perfekt.

Jetzt fehlt nur noch, wo die Einstellung ist mit die Zeitzone. Der Server ist bereits auf Zeitzone Berlin.

https://twig.symfony.com/doc/3.x/filters/date.html

Man kann da auch die Zeitzone mit angeben, bspw. Europe/Berlin

2 Likes

Herzlichen Dank, erledigt!

Zur Vollständigkeit
Der Code lautet also wie folgt:

{{ order.orderDateTime|date("d.m.Y H:i", "Europe/Berlin") }}

 

4 Likes

Da die Frage kam, hier mal die Lösung.

vendor/shopware/core/Framework/DataAbstractionLayer/FieldSerializer/DateTimeFieldSerializer.php

" UTC" in " Europe/Berlin" ändern. Dann gibt der Standart Code {{ order.orderDateTime|date }} unsere Datum Uhrzeit raus.

Dies funktioniert auch: {{ order.orderDateTime|date(„d.m.Y H:i“, „Europe/Berlin“) }}

Erdea-Solutions

1 Like

@Gasparemy schrieb:

Da die Frage kam, hier mal die Lösung.

vendor/shopware/core/Framework/DataAbstractionLayer/FieldSerializer/DateTimeFieldSerializer.php

" UTC" in " Europe/Berlin" ändern. Dann gibt der Standart Code {{ order.orderDateTime|date }} unsere Datum Uhrzeit raus.

Dies funktioniert auch: {{ order.orderDateTime|date(“d.m.Y H:i”, “Europe/Berlin”) }}

Erdea-Solutions

Ist diese Änderung dann auch Updatesicher? 

Servus zusammen,

jetzt muss ich nochmal kurz blöd fragen - stell ich mich nur dumm an oder gibt es tatsächlich keine zentrale Einstellung für das die Zeitzone inkl. Datum und Uhrzeit in E-Mails und Co, die auch Updatesicher ist?

Danke!

Seit 6.3.5.0 ist das Problem mit der fehlerhaften Zeit in den Mails behoben

 NEXT-12450

@lhairman schrieb:

Seit 6.3.5.0 ist das Problem mit der fehlerhaften Zeit in den Mails behoben

NEXT-12450

Kann ich leider nicht bestätigen. Ich verwende 6.3.5.0 und meine Bestellmails schauen immer noch so aus:

…Bestellung ist am February 2, 2021 17:54 bei uns eingegangen …

Nachdem ich die  vendor/shopware/core/Framework/DataAbstractionLayer/FieldSerializer/DateTimeFieldSerializer.php   wie oben beschrieben angepasst habe, wirds korrekt angezeigt. allerdings ist das ja wohl nicht updatesicher.
Oder gibts vielleicht noch irgnedwo im Admin Bereich eine Einstellung, die ich noch konfigurieren muss? Hab nix dazu gefunden…

@NGEDV‍ In der Datenbank soll immer UTC stehen. Das Umrechnen sollte in der Anzeige immer passieren. Mit deiner Änderung sollte in der Administration die Uhrzeit nun falsch sein und Scheduled Tasks falsche Zeit ausgeführt werden usw.

Dies sollte die restlichen Sachen beheben NEXT-10126 - Fixed the date in mail template display with locale lang… · shopware/platform@eeb949e · GitHub
Die E-Mail Templates werden bei Updates nur korrigiert, wenn sie noch den Standard entsprechen

@Shyim‍ Danke für die Erläuterungen. Habs rückgängig gemacht und warte mal auf das nächste Update…

Ich habe in den Templates der E-Mail die Zeitausgabe wie oben beschrieben angepasst:

{{ order.orderDateTime|date("d.m.Y H:i", "Europe/Berlin") }} 

Damit ist es dann auch updatesicher. 

6.3.5.0 habe ich selbst noch nicht getestet.

Hallo,

wie bekommt man die da die deutschen Lang-Namen rein? Also Februar oder Freitag,

z.zt.z.B. bei D=Fry obwohl {{ order.orderDateTime|date(“D.m.Y H:i”, “Europe/Berlin”) }} und statt UTC= Europe/Berlin

Alles zum Format:

https://www.php.net/manual/de/function.date.php