[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Неккоректное отображение через date()
Dizzy
Доброго времени суток!

Есть такой запрос:
$time = time()+3600*3;
query("UPDATE `table` SET `time_end`='$time'");


То есть к текущему времени я прибавляю 3 часа.
В другом месте вывожу сколько осталось:

echo date("H часов, i минут.",intval($p[time_end]-time()));

Результат получаю на 3 часа больше чем нужно. В чем дело?

Если выполнить код:
$date1 = date("d.m.y H:i", time());
echo $date1;

то всё работает корректно
AllesKlar
Потому что, ты отправляешь 10800 секунд с начала эпохи Юникс, а это
1 января 1970 00:00:00 GMT
А функция date() работает с твоей локалью.
Вот на столько часов, на сколько у тебя смещение от GMT (Гринвич, Лондон), больше и получаешь (Москва +3 часа).

_____________
[продано копирайтерам]
Dizzy
Цитата (AllesKlar @ 19.11.2014 - 16:52)
Потому что, ты отправляешь 10800 секунд с начала эпохи Юникс, а это
1 января 1970 00:00:00 GMT
А функция date() работает с твоей локалью.
Вот на столько часов, на сколько у тебя смещение от GMT (Гринвич, Лондон), больше и получаешь (Москва +3 часа).

как быть? вычитать по 3 часа каждый раз?
vital
Цитата (Dizzy @ 19.11.2014 - 21:46)
Цитата (AllesKlar @ 19.11.2014 - 16:52)
Потому что, ты отправляешь 10800 секунд с начала эпохи Юникс, а это
1 января 1970 00:00:00 GMT
А функция date() работает с твоей локалью.
Вот на столько часов, на сколько у тебя смещение от GMT (Гринвич, Лондон), больше и получаешь (Москва +3 часа).

как быть? вычитать по 3 часа каждый раз?

ПРиводить сначала все время в UTC и все операции математические делать в UTC.
А перед выводом пользователю уже приводить к его часовому поясу.

_____________
"Нужно быть готовым прислушиваться к тем, кто может тебя чему-нибудь научить. Иначе ты никогда не вырастешь."

Откровенно я никому ниразу не нагрубил. А дать подзатыльник зарвавшемуся юнцу, так это и ему на пользу, и мне в удовольствие. © AllesKlar
AllesKlar
Ты можешь вместо time() использовать strtotime(date('H:i')) - получишь тоже самое, что и time(), но с уетом локали

_____________
[продано копирайтерам]
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.