Псих
Как корректно выводить время с помощью php, если на сервере установлен другой часовой пояс?

Комментарии
21.05.2007 в 23:50

Например так:

<?

$x = -2; //разница с серверным временем

echo date('d m Y H:s', strtotime('- '.$x.' hours'));

?>
22.05.2007 в 00:10

Псих
 Magir, спасибо большое!



А что вообще означает второй параметр в функции date?
22.05.2007 в 00:20

Псих
Всё, вопрос снимается, теперь понял как с функцией date работать)
22.05.2007 в 19:59

Crazy Wizard

Ещё обрати внимание на date_default_timezone_set().



И ешё, на функцию date_create и объект DateTime. Они, на мой взгляд, лучше подходят для таких задач, чем хак с strtotime().
22.05.2007 в 22:57

В date_default_timezone_set ключевым является замечание: PHP 5 >= 5.1.0RC1 :rotate:
23.05.2007 в 03:08

Magir

Это правда. Но PHP5 уже не назовёшь большой редкостью. А уж если у кого-то PHP5, то и версия скорее всего больше 5.1.0RC1 иначе ему срочно надо обновляться.



Да, кстати.. даже и с PHP4, имхо, лучше без strtotime обойтись:

<?php

$tzOffset = -2; //сдвиг от времени сервера в часах

$localTime = time() + $tzOffset*60*60;

echo date('d m Y H:s', $localTime);

?>

23.05.2007 в 09:32

Псих
<?php

$tzOffset = -2; //сдвиг от времени сервера в часах

$localTime = time() + $tzOffset*60*60;

echo date('d m Y H:s', $localTime);

?>




Я почти так и решил проблему. А именно:

$gmt=2;

$localTime = time() + ($gmt+date("I"))*60*60;

echo gmdate('d m Y H:s', $localTime);