
![]() |
Здравствуйте Гость ( Вход | Регистрация ) |
|
|
|
![]() ![]() ![]() |
![]() |
۩
Дата
|
![]() Старик ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 125 Пользователь №: 27864 На форуме: Карма: 1 ![]() |
Доброго времени суток!
Есть такой запрос: $time = time()+3600*3; То есть к текущему времени я прибавляю 3 часа. В другом месте вывожу сколько осталось: echo date("H часов, i минут.",intval($p[time_end]-time())); Результат получаю на 3 часа больше чем нужно. В чем дело? Если выполнить код: $date1 = date("d.m.y H:i", time()); то всё работает корректно |
![]() |
|
![]() ![]() Здесь живет ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 4155 Пользователь №: 38635 На форуме: Карма: 223 ![]() |
Потому что, ты отправляешь 10800 секунд с начала эпохи Юникс, а это
1 января 1970 00:00:00 GMT А функция date() работает с твоей локалью. Вот на столько часов, на сколько у тебя смещение от GMT (Гринвич, Лондон), больше и получаешь (Москва +3 часа). -------------------- [продано копирайтерам]
|
![]() |
۩
Дата
|
||
![]() Старик ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 125 Пользователь №: 27864 На форуме: Карма: 1 ![]() |
как быть? вычитать по 3 часа каждый раз? |
||
![]() |
|||||
![]() ![]() int main(){printf("Hello World"); return 0;"} ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 2490 Пользователь №: 20247 На форуме: Карма: 63 ![]() |
ПРиводить сначала все время в UTC и все операции математические делать в UTC. А перед выводом пользователю уже приводить к его часовому поясу. -------------------- "Нужно быть готовым прислушиваться к тем, кто может тебя чему-нибудь научить. Иначе ты никогда не вырастешь."
Откровенно я никому ниразу не нагрубил. А дать подзатыльник зарвавшемуся юнцу, так это и ему на пользу, и мне в удовольствие. © AllesKlar |
||||
![]() |
|
![]() ![]() Здесь живет ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 4155 Пользователь №: 38635 На форуме: Карма: 223 ![]() |
Ты можешь вместо time() использовать strtotime(date('H:i')) - получишь тоже самое, что и time(), но с уетом локали
-------------------- [продано копирайтерам]
|
![]() |
![]() ![]() ![]() |