Форум портала Metropolis

Высокие технологии и мобильный мир => Создание ресурсов => Тема начата: eXtractor от 10 Декабрь 2007, 19:41



Название: Вопрос по PHP, timezones
Отправлено: eXtractor от 10 Декабрь 2007, 19:41
Хочу сделать так, чтобы пользователь сайта мог указать свой часовой пояс, и ему показывалось его местное время. Пытаюсь определить часовой пояс сервера вот так:
Код:
define('server_timezone', intval(date('Z')));

а оно говорит, мол, фиговые у вас методы:
Цитировать
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 'MSK/3.0/no DST' instead in…

на что полагаться-то тогда?

Кстати, date_default_timezone_get() приводит к той же ошибке. Это фишка языка — предупреждать пользователя о возможно неверном определении часовых поясов?


Название: Re: Вопрос по PHP, timezones
Отправлено: morg4n от 10 Декабрь 2007, 20:38
мб... брать date() сервера.. тупо принимать его за +3ГМТ
если пользователь хочет 4ГМТ , то прибавлять 1 час к date() сервера?)

раз с timezone проблема..)


Название: Re: Вопрос по PHP, timezones
Отправлено: eXtractor от 10 Декабрь 2007, 20:44
Ну, выставлять вручную — не наш метод :\


Название: Re: Вопрос по PHP, timezones
Отправлено: Dash от 10 Декабрь 2007, 21:05
а ты хочеш что бы пользователь сам указывал или что бы просто показывал такое-же время как и в трее...


Название: Re: Вопрос по PHP, timezones
Отправлено: morg4n от 10 Декабрь 2007, 21:07
ну напиши функцию...)
 из серии...

date_timezone($timezone)
{
$hour = date(H); // $hour = часы (24)
$hour  = $hour  + $timezone; // прибавляем к часам тайм зон..
if($hour  > 23) {
$hour =$hour -24;
$day = date(d);
$day = $day + 1;
} // если время больше 24 часов, то переводим день на следующий и обнуляем время..
$date = $day. date(".F "). $hour . date(":i"); //$date = день.месяц часы:минуты
return $date;
}

чтото в этом духе)