Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: ошибка date('d',time())
 
 автор: serjinio   (30.04.2009 в 21:00)   письмо автору
 
 

$day =  date('d',time());
выдает ошибку timezone
Strict Standards: date() [function.date]: It is not safe to rely on the system's timezone settings.
 Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set()
 function. In case you used any of those methods and you are still getting this warning,
 you most likely misspelled the timezone identifier. We selected 'Europe/Moscow' for '4.0/DST' instead in


Как правильно написать?

  Ответить  
 
 автор: Trianon   (30.04.2009 в 21:34)   письмо автору
 
   для: serjinio   (30.04.2009 в 21:00)
 

проставить корректную таймзону.

  Ответить  
 
 автор: serjinio   (30.04.2009 в 22:27)   письмо автору
 
   для: Trianon   (30.04.2009 в 21:34)
 

достаточно ли в начале скрипта указать
 date_default_timezone_set('Europe/Moscow');

и будет ли смещение если скрипт запустить допустим в омске(другом часовом поясе) ?...
я так понял что
putenv ('TZ=Europe/Moscow');
тоже поддерживается в php5

  Ответить  
 
 автор: Trianon   (30.04.2009 в 22:38)   письмо автору
 
   для: serjinio   (30.04.2009 в 22:27)
 

Ну наверняка же в Омске смещение не такое, как в Москве?
Соответственно, прописывать нужно ту, в которой хотите получить дату-время.

  Ответить  
 
 автор: serjinio   (30.04.2009 в 22:40)   письмо автору
 
   для: Trianon   (30.04.2009 в 22:38)
 

а есть что-то универсальное?

  Ответить  
 
 автор: Trianon   (30.04.2009 в 22:42)   письмо автору
 
   для: serjinio   (30.04.2009 в 22:40)
 

часы, которые показывают время одновременно во всех поясах? :)

  Ответить  
 
 автор: serjinio   (30.04.2009 в 23:11)   письмо автору
 
   для: Trianon   (30.04.2009 в 22:42)
 

Я так понимаю что ошибка была вызвана тем что в php.ini на сервере не была выставлена таймзона
которая принудительно выставилась с помощь функции date_default_timezone_set('Europe/Moscow');
в самом скрипте...те $day = date('d',time()); по москве покажет 30 и даже в любом другом часовом поясе на клиенте покажет 30(апреля)...а как чтобы скрипт на клиенте в другом часовом поясе отображал настоящую дату ..допустим 1(мая)(в омске)...

  Ответить  
 
 автор: Trianon   (30.04.2009 в 23:29)   письмо автору
 
   для: serjinio   (30.04.2009 в 23:11)
 

>Я так понимаю что ошибка была вызвана тем что в php.ini на сервере не была выставлена таймзона
>которая принудительно выставилась с помощь функции date_default_timezone_set('Europe/Moscow');
>в самом скрипте...

Нет. Ошибка вызвана тем, что таймзона не выставлена ни в php.ini (что правильно) , ни в переменной TZ (что тоже правильно) ни путем предварительного явного вызова функции date_default_timezone_set('регион/штат') (что неверно) . Либо выставлена неизвестным идентификатором таймзоны.

>те $day = date('d',time()); по москве покажет 30 и даже в любом другом часовом поясе на клиенте покажет 30(апреля)...

конечно. А с чего ему покзывать другое, уж коль скоро таймзону Вы не выставили?

>а как чтобы скрипт на клиенте в другом часовом поясе отображал настоящую дату ..допустим 1(мая)(в омске)...

Очевидно, нужно как-то информацию о таймзоне серверу передать, предварительно получив её у клиента?

Дальше думайте сами.

  Ответить  
 
 автор: serjinio   (01.05.2009 в 10:09)   письмо автору
 
   для: Trianon   (30.04.2009 в 23:29)
 

Допустим через javascript я смогу получить время на клиенте и часовой пояс

<script type="text/javascript">
   var d = new Date();
   document.writeln(d.getHours()); // локальное время, установленное на клиенте
   document.writeln(d.getUTCHours()); // время по Гринвичу, исходя из установок времени на клиентской машине
</script>

а как передать это значение серверу?

  Ответить  
 
 автор: ddhvvn   (01.05.2009 в 10:44)   письмо автору
 
   для: serjinio   (01.05.2009 в 10:09)
 

>а как передать это значение серверу?
как угодно - AJAX, фрейм, просто document.location...

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования