Probleme mit der Timezone
am 20.08.2018 - 22:08 Uhr in
Hallo zusammen,
in einem Entity (Eck) habe ich ein Datumsfeld.
Dieses Datumsfeld hat keine Besonderheiten, die Granulierung ist Sekunde.
Bei den "Regionalen Einstellungen" habe ich Deutschland Berlin eingetragen, das ist die Timezone: Europe/Berlin.
Ein Datum wird also z.B. als 20181223T092324 gespeichert und dann in der Ausgabe richtig als
23.12.2018 11:23:24 Uhr (Achtung: das ist zwei Stunden später als das obige Datum, wegen UTC) ausgegeben.
Soweit funktioniert alles richtig.
Nun möchte ich dieses Datum auch noch in einem Programm verarbeiten.
Dazu habe ich folgenden Code geschrieben, der aus meiner Sicht aber viel zu kompliziert ist. Das muss viel einfacher gehen, vielleicht hat von euch ja einer eine Idee.
Hier der Code:
$bl_str2 ='20181223T092324';
$userTimezone = new DateTimeZone(drupal_get_user_timezone());
$gmtTimezone = new DateTimeZone ('GMT');
$myDateTime = new DateTime($bl_str2, $gmtTimezone);
$offset = $userTimezone->getOffset($myDateTime);
$myInterval = DateInterval::createFromDateString((string)$offset . 'seconds');
$myDateTime->add($myInterval);
$result = $myDateTime->format('d.m.Y H:i');
Das Ergebnis $result ist genau: 23.12.2018 11:23:24 Uhr, wie gewünscht.
Gruß
Berthold
- Anmelden oder Registrieren um Kommentare zu schreiben
Drupal speichert intern alles
am 21.08.2018 - 12:21 Uhr
Drupal speichert intern alles in GMT und wandelt das Datum erst bei der Ausgabe in das lokale Format. Insoweit ist alles im grünen Bereich. Wenn Du jetzt das Datum selbst ausgeben willst, mußt Du die Umrechnung sebser machen.
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *