2016-07-05 21 views
0

ich diese Codezeile haben:Php Datum hinzufügen 1 Tag von Datenbankinformationen

<?= date('F dS, Y',$user_info['date_of_birth']) ?> 

Er erhält das Unix birtday Datum pro Benutzer und wandelt sie in einem normalen Tag. Das einzige Problem ist, dass es einen Tag früher angezeigt wird. Zum Beispiel ist das Unix-Datum in der Datenbank 11. Mai 1990. In der Ansicht wird es ausgegeben, 10. Mai 1990. Wissen Sie, wie Sie dieses Problem beheben?

Vielen Dank im Voraus

+2

ich in Zeitzone Fragen aussehen würde. – chris85

+0

Das ist vielleicht das Problem. Weißt du, wie ich + einen Tag zu der obigen Codezeile hinzufügen kann? –

+0

Tun Sie das nicht. Beheben Sie das Problem, damit Ihre Zeitzonen übereinstimmen. – chris85

Antwort

0

ausdrücklich Ihre Frage zu beantworten, können Sie folgendes tun:

<?=date('F dS, Y',($user_info['date_of_birth'] + 86400))?> 

Wo 86400 ist die Anzahl der Sekunden an einem Tag.

Wie jedoch andere vorgeschlagen haben, können und sollten Sie die Datenbank und PHP mit der UTC/GMT-Zeit synchronisieren.

Für Php Zeitzone wie folgt vor an der Spitze Ihrer Skripte:

date_default_timezone_set('UTC'); 

Für SQL, die Sie verwenden in der Datenbank abhängt (ich glaube, Sie die Datenbank nicht angegeben Sie verwenden).

+0

Danke, das funktioniert perfekt. Und jetzt schaue ich mir die Zeitzonen an! –

0

Überprüfen Sie die Synchronisierung Ihrer MySQL- und PHP-Zeitzonen. Sehen Sie sich diese ähnliche Frage/Antwort:

Set timezone in PHP and MySQL

+0

Danke! für die Info :) Aber weißt du, wie man + 1 Tag in der obigen Codezeile hinzufügt? –

+0

Versuchen Sie etwas wie folgt: date ('F dS, Y', strtotime ($ user_info ['date_of_birth']. '+1 Tag')). – Nick

+0

Ich stimme mit chris überein, Sie sollten wahrscheinlich nur die Schritte zum Ausrichten von Zeitzonen ausführen, damit Sie nicht in anderen Bereichen der Anwendung auf ähnliche Probleme stoßen. – Nick

0

Es ist wahrscheinlich Zeit auf Ihrem Server ist falsch. Ist Sie es haben accesse Shell Sie es durch date Befehl überprüfen:

[[email protected] ~]$ date 
Tue Jul 5 04:17:00 UTC 2016 

wenn nicht, dann werden Sie wahrscheinlich zu tun haben, wie folgt aus:

define('TIMEZONE_OFFSET', 86400); 
<?=date('F dS, Y',($user_info['date_of_birth'] + TIMEZONE_OFFSET))?> 

Auch wenn Sie den Zugriff auf MySQL-Konsole überprüfen seine Zeitzoneneinstellungen.

set-timezone-in-php-and-mysql

gesetzt PHP auch manuell defaulte Zeitzone:

date_default_timezone_set('UTC'); 
Verwandte Themen