Здравствуйте.
Есть такой код (тестовый)
$v = 1355711847;
echo $v.'<br>';
echo date("d.m.Y H:i:s",$v);
echo '<br>date_default_timezone_get:';
print_r(date_default_timezone_get());
echo '<br>';
$date = new DateTime("@$v");
echo $date->format('d.m.Y H:i');
echo '<br>$date->getTimezone():';
echo print_r($date->getTimezone()->getName());
echo '<br>';
echo $date->format('U');
echo '<br>**********';
$d = new DateTime();
echo time().' ** '.$d->format('U');
echo '<br>-----------------------<br>';
$date->setTimezone(new DateTimeZone('Europe/Moscow'));
echo '<br>-';
echo print_r($date->getTimezone()->getName());
echo '<br># '.$date->format('d.m.Y H:i');
вывод:
По факту echo date("d.m.Y H:i:s",$v); - выводит верный вариант, но почему же echo $date->format('d.m.Y H:i'); дает на 4 часа меньше? $date->getTimezone() - не москва по умолчанию, но ведь date_default_timezone_get() - москва.. до этого момента мне казалось, что это одно и тоже всегда будет выводить...
Короче.
Чтоб работало правильно, мне пришлось вставить строчку
$date->setTimezone(new DateTimeZone('Europe/Moscow'));
Но что-то мне подсказывает, что есть вариант лучше, например поправить параметр в
php.ini
вот какие настройки в
php.ini
В общем вопрос: чего я не понимаю и почему у меня разно время выводится, где что поправить, чтобы не писать setTimezone?
_____________
Ласковое слово и кошке приятно... Плюсик в карму сойдет wink.gif
*smarty дока - новая любовь
Моё рукотворение ругайте, хвалите smile.gif
Веду маленький
блогв этом блоге публикую новые работы
WMR217126627282 wink.gif