2017-03-24 3 views
0

Ich habe ein PHP-Datetime-Objekt, das ich mit DateTime :: format() in einen String konvertieren wollte. Aber das gibt mir immer ein falsches Datum. Aus irgendeinem Grund erhalte ich immer einen Termin, der einen Tag vor dem Tag liegt, an dem ich meinen Code ausführe, egal welchen Wert ich für das Datum angegeben habe. Mein Datetime-Objekt -PHP Datetime Format() falsches Datum

object(DateTime) { 
    date => '2017-03-25 00:00:00' 
    timezone_type => (int) 3 
    timezone => 'UTC' 
} 

ich diese verwenden, um die Datetime in einen String formatiert werden -

$myDateObject->format('Y/m/d') 

mich gibt -

2017/03/23 

Es gibt absolut keinen Code zwischen der Linie, die Drucke das DateTime-Objekt und die Zeile, die das Objekt formatiert, dh es werden keine Änderungen am Objekt vorgenommen.

Wenn es hilft, die Ausgabe meines Servers date -u gibt Fri Mar 24 06:08:39 UTC 2017 zurück. Auch wenn ich das Datum Zeichenfolge mit Stunden und Minuten mit $myDateObject->format('Y/m/d h:i') erstelle ich bekommen 2017/03/23 12:00

EDIT

Der Ausgang meines date_default_timezone_get() ist UTC

date('Y-m-d') gibt 2017-03-24 dh das heutige Datum

+0

Wie erstellen Sie '$ myDateObject'? Kannst du eine Geige erstellen? –

+0

tut echo 'date ('Y-m-d');' geben Sie auch das falsche Datum? Und welche Zeitzone soll dein PHP-Setup verwenden? Probiere 'date_default_timezone_get' aus. – Gordon

Antwort

0

Check out default time zone set in PHP
Sie möchten versuchen, Standardzeitzone Beispiel: date_default_timez one_set ('Amerika/Toronto');