date_default_timezone_set funktioniert nicht.php - date_default_timezone_set funktioniert nicht, Warum?
mein Code:
ini_set('display_errors', true);
error_reporting(E_ALL);
date_default_timezone_set("UTC");
echo date('Y-m-d H:i:s T') . "<br>";
echo date('Y-m-d H:i:s T', time()) . "<br>";
date_default_timezone_set("Asia/Shanghai");
echo date('Y-m-d H:i:s T') . "<br>";
echo date('Y-m-d H:i:s T', time()) . "<br>";
ini_set("date.timezone","UTC");
echo date('Y-m-d H:i:s T') . "<br>";
echo date('Y-m-d H:i:s T', time()) . "<br>";
ini_set("date.timezone","Asia/Shanghai");
echo date('Y-m-d H:i:s T') . "<br>";
echo date('Y-m-d H:i:s T', time()) . "<br>";
alle von ihnen geben das gleiche Datum "2017.05.26 00.47.08 CST", warum?
Update:
ich dieses Problem behoben haben, der Grund ist, dass ich die falsche Art und Weise verwendet, um die Zeitzone auf CentOS7 zu ändern:
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
auf diese Weise direkt am CentOS6, aber in CentOS7/etc/localtime ist mit/usr/share/zoneinfo/Etc/UTC verbunden, also habe ich die UTC-Zeitzone beschädigt.
der richtige Weg, um die Zeitzone auf CentOS7 zu ändern ist:
timedatectl set-timezone "Asia/Shanghai"
oder
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
so kopiert I/usr/share/zoneinfo/Etc/UTC von anderem System zu meinem System behebt dieses Problem.
bitte obigen Code sehen zu, versuche ich auch "echo date ('Ymd H: i: s T')", diese umfassen Zeit nicht(), aber es gibt das gleiche Ergebnis zurück. und ich versuche es auch: $ now = new DateTime(); $ now-> setTimezone (neue DateTimeZone ('UTC')); echo $ now-> format ('Y-m-d H: i: s T'). "
"; es zurück: 2017-05-26 13:14:27 CST, warum ist die Zeitzone CST (chine)? – gdtv
@gdtv Aber bevor Sie dieses Datum wiedergeben, legen Sie die Zeitzone auf UTC fest. Das Echodatum (time()) entspricht also Ihrem Echo, da beide UTC sind – Andreas