DateTime对象未返回正确的时区

时间:2016-12-03 11:52:35

标签: php

DateTime对象和date()方法返回错误的时间。

php timezone已在php.ini中设置getter方法验证时区设置。但生成时间显示落后4小时

PHP版本5.4.16

if (date_default_timezone_get()) {
    echo 'date_default_timezone_set: '. date_default_timezone_get() .'<br />';
}

if (ini_get('date.timezone')) {
    echo 'date.timezone: ' . ini_get('date.timezone') . "<br>";
}

$d = new DateTime();
echo $d->format("Y-m-d H:i:s") . "<br>";
$d->setTimezone(new DateTimeZone('Europe/Istanbul'));
echo $d->format("Y-m-d H:i:s");

结果:

date_default_timezone_set: Europe/Istanbul
date.timezone: Europe/Istanbul
2016-12-03 10:44:15
2016-12-03 10:44:15

应该是2016-12-03 14:44:15

1 个答案:

答案 0 :(得分:0)

使用这个简单的代码

回音日期(&#34; d-M-Y&#34;);

date_default_timezone_set(&#39;亚/加尔各答&#39);

回音日期(&#34; h:i:sa&#34;);