Heim >Backend-Entwicklung >PHP-Tutorial >1 Tag entspricht 86400 Sekunden?

1 Tag entspricht 86400 Sekunden?

WBOY
WBOYOriginal
2016-07-30 13:30:153312Durchsuche

Datumsoperationen werden häufig beim Schreiben von Code verwendet. Der Einfachheit halber ist es meistens möglich, einfach einen Zeitstempel hinzuzufügen und zu entfernen:

$time = mktime(0, 0, 0, 8, 28, 2015);
$one_hour_later = date('Y-m-d H:i:s', $time + 3600);

Dies ist eine einfache Möglichkeit, den Zeitstempel eine Stunde später im Code zu erhalten, aber wenn Sie hineinzoomen auf Einheiten über Tagen, ist dieser Zeitstempel wirklich das, was Sie wollen?

Wenn Sie beispielsweise einen Zeitstempel von 0 Uhr an einem bestimmten Tag haben und den Zeitstempel von 0 Uhr 5 Tage später wissen möchten, ist es richtig, einfach die Zeit nach 5*86400 hinzuzufügen ?

$time = mktime(0, 0, 0, 3, 8, 2015);
$five_day_later = date('Y-m-d H:i:s', $time + 5 * 86400);
echo $five_day_later; 

>> 2015-03-13 00:00:00

Es scheint kein Problem zu geben. Aber was ist, wenn jemand an einem anderen Ort es ausführt?

// 时区设置为美国芝加哥
date_default_timezone_set('America/Chicago');
$time = mktime(0, 0, 0, 3, 8, 2015);
$five_day_later = date('Y-m-d H:i:s', $time + 5 * 86400);
echo $five_day_later; 

>> 2015-03-13 01:00:00

Warum ist es fünf Tage später nicht 0 Uhr?

Natürlich liegt dieses Hauptproblem in der Sommerzeit (das spezifische Prinzip der Sommerzeit wird nicht eingeführt, Sie können Baidu selbst verwenden).

Lösung: Verwenden Sie die Funktion strtotime anstelle von Addition und Subtraktion

// 时区设置为美国芝加哥
date_default_timezone_set('America/Chicago');
$time = mktime(0, 0, 0, 3, 8, 2015);
$five_day_later = date('Y-m-d H:i:s', strtotime('+5 days', $time));
echo $five_day_later;
>> 2015-03-13 00:00:00

Obwohl dieses Problem nicht auf diese anwendbar ist Für diejenigen, die dies nicht tun. In Zeitzonen gibt es keine Sommerzeit. In Zeitzonen, in denen Sommerzeit gilt, hat sie jedoch Auswirkungen auf Ihre erwarteten Ergebnisse.

Urheberrechtserklärung: Dieser Artikel ist ein Originalartikel des Bloggers und darf nicht ohne die Erlaubnis des Bloggers reproduziert werden.

Oben wird erläutert, wie 1 Tag 86400 Sekunden entspricht. Ich hoffe, dass es Freunden, die sich für PHP-Tutorials interessieren, hilfreich sein wird, einschließlich relevanter Inhalte.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn