Функция date(), выводящая текущую дату, время, берет значения с компа, с которого запущен скрипт. У меня сайт на московском хостинге, а сам я в ХМАО, т.е. местное время можно вывести прибавив к московскому +2 часа. С часами не проблема, другое дело число. Когда у нас в Сургуте уже чуть больше полуночи (т.е. начался следующий день), скрипт все еще показывает вчерашний день (то есть московское время). Конечно, можно в коде задать условие, проверяющее, что если сейчас от 00 час 00 мин до 01 час 59 мин 59 сек, то "текущее число += 1 день", но может есть другой более практичный способ? Просто ведь цикл нельзя ограничить просто "+1 день", прийдется предусмотреть ситуацию последнего дня в месяце, последнего дня в годе, тогда еще "+1 месяц", "+1 год" соответственно, а это соответственно вычисление кол-ва дней в месяце, проверка "високосного года", т.е. вроде бы небольшой код форматирования даты превращается уже в такой нехиленький листинг. Корректная дата мне нужна не просто для того, чтобы просто вывести ее пользователю, с ней связана регистрация пользователей в системе, дата последнего посещения, а так же (!) шифрование пароля пользователя и сопоставление его с тем, что имеется на сервере в базе данных MySQL (хэш-значение пароля меняется каждые сутки).
Тебе нужна постоянная дата г.Сургута, можешь писать Код (Text): date("d.m.Y H:i:s", time()+3600*2); По-моему, должно работать без каких-либо несовпадений. А для большей уверенности можешь считать дату относительно Гринвича, прибавляя 5 часов: Код (Text): function tdate($mask, $addhrs=0, $addmins=0) { return gmdate($mask, $addhrs*3600+$addmins*60+time()); } echo tdate("d.m.Y H:i:s", 5); P.S. php не учитывает лишние часы зимнего/летнего времени.
(PHP 5 >= 5.1.0RC1) date_default_timezone_set( string timezone_identifier ) -- Sets the default timezone used by all date/time functions in a script
Подскажите плиз. А как сделать что б скрипт автоматом учитывал разницу GMT? Т. е. на сайт могут заходить люди с разных стран, и скрипт соответственно всем показывал время исходя из страны посетителя. Или может быть кто подскажет как сделать вывод времени в нескольких часовых поясах. Например: Сечас в Москве - хх:хх Сейчас в Берлине - хх:хх