2017-10-17 1 views
-2

Ich arbeite an einem alten System geschrieben in Vanille PHP.PHP Zeitstempel eine Stunde langsam

Ich habe einige Zeit Umwandlungsprobleme.

Im folgenden Beispiel habe ich ein sowohl den Zeitstempel und die „ziemlich date“ erwartet, einander zu reflektieren:

<?php 
date_default_timezone_set('Europe/London'); 

$timestamp = 1509062400; //Friday, October 27, 2017 12:00:00 AM 

$date = new DateTime(); 
$date->setTimezone(new DateTimeZone('Europe/London')); 
$date->setTimestamp($timestamp + 3601); 
$date->setTime(0, 0); 

echo $date->getTimestamp(); 
echo '<br/>'; 
echo $date->format('Y-m-d H:i:s'); 

Wenn jedoch auf dem Server dieses Skript ausgeführt wird, ist das Ergebnis folgendes:

Timestamp: 1509058800 
Pretty Date: 2017-10-27 00:00:00 

die hübsche Datum repräsentiert 27. 00.00 Oktober, aber der Zeitstempel (nach epochconvertor) repräsentiert 26. 23.00 Uhr Oktober

Ich bin nicht sicher, warum der Zeitstempel eine Stunde langsam ist. Kann jemand helfen?

+1

'setTime (0, 0)' setzt die Zeit auf '00: 00: 00'. – Barmar

+0

Genau das möchte ich ...? – James

+0

Was ist der Zweck von '$ date-> setTimestamp ($ timestamp + 3601);' wenn die nächste Zeile es vollständig überschreibt? – ceejayoz

Antwort

6

Wenn Sie in London sind, ist Ihr Zeitstempel wahrscheinlich in der britischen Sommerzeit. Die Epoche wird in GMT sein. BST ist eine Stunde vor GMT.

+0

Derp; Danke! – James

Verwandte Themen