Felix Riesterer: PHP Komponenten aus DateTime auslesen

Beitrag lesen

Lieber encoder,

date('w', $d) ist überall zu finden. Da ist auch keine Zeitzone im Spiel.

aha, jetzt kommen wir der Sache näher. Ich meine mich zu erinnern, dass die Sache mit den Timezones seit PHP5 stringenter gehandhabt wird. Jedenfalls kommt man mit date_default_timezone_get() an die intern verwendete Timezone ran. Man kann sie für sein Script auch ändern.

Mein Gedanke war jetzt, obs da nicht ein besser lesbares $d->dayOfWeek gibt.

Nö, wozu auch? Es gibt ja schon den w-Schalter.

DateTimeInterface::format gibt es noch, damit lässt sich die Stringdarstellung erzeugen. Aber auch ohne Zeitzone.

An die Zeitzone kommst Du auf anderem Weg. Siehe oben. Wenn Du eine Zeitzonenangabe in Deinem Datumswert ausgeben willst, hast Du wieder andere Schalter, die Dir einen String nach irgendeiner Norm (ISO/RFC/etc.) erzeugen können.

Wie genau ist dein Hinweis gemeint?

Mein Hinweis war, dass Deine Erwartungshaltung anhand der Komplexität des Themas an sich eine in meinen Augen unpassende ist.

Wahrscheinlich denkst Du in Datumsfragen anders, als die Macher von PHP oder JavaScript.

Das mag sein, ich kanns leider nicht beantworten denn ich weiß noch nicht wie die denken 😀

Die denken in „intern UNIX-Timestamp, extern auf Wunsch berechnet“. Dafür verwenden sie in PHP diese Schalter bei der Stringerzeugung. Die Zeitzone selbst ist in einem PHP-Setting hinterlegt, das per Script auch abgeändert werden kann, damit die Stringerzeugung in Deinem Sinne funktioniert.

Liebe Grüße

Felix Riesterer