2016-12-03 4 views
0

Метод DateTime и дата() возвращают неправильное время.Объект DateTime не возвращает правильный часовой пояс

php часовой пояс, уже установленный в 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

+0

date_default_timezone_set (Европа/Стамбул); используй это. –

+0

Покажите нам вывод для '$ d-> setTimezone (новый DateTimeZone ('UTC')); echo $ d-> format ("Y-m-d H: i: s"); ' –

+0

Проверяли ли вы свою систему datetime? запустить команду даты в оболочке? – TurtleTread

ответ

0

использование этот простой код

echo date ("dMY");

date_default_timezone_set ('Asia/calcutta');

echo date ("h: i: sa");

+0

date_default_timezone_get() уже возвращает правильное значение. проблема создается, дата не совпадает с часовым поясом. поэтому часовой пояс Asia/Calcutta возвращается так же, как Европа/Стамбул – levye

Смежные вопросы