Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.137.187.233] |
|
Страницы: (2) [1] 2 все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
Всем привет!
Думаю, название темы с описанием говорит о сути вопроса. У меня Windows 7 Ultimate русское издание, PHP 5.2.17. Вообще-то, пишу Android-приложение для службы такси, тут уже светился с этим на форуме. Но оно не может работать без веб-сервиса, от которого должно принимать и отправлять данные. На рабочем сервере мне тестировать запрещено, поэтому поднял сайт у себя. Сегодня только что столкнулся с тем, что мой тестовый экипаж такси не отображается на карте, хоть и посылает состояние Свободен и текущие тестовые координаты где-то в центре города. Хотя утром еще все работало. Долго ковырялся, посылал те же данные из формы на сайте - тоже не успешно. В итоге обнаружил, что в одной из таблиц (а наверно, и во многих других) время последнего обновления данных значится на час вперед, a-la по зимнему времени. Посмотрел в phpinfo() - там значится Default timezone: Europe/Moscow. Помню, что проставлял это в php.ini. Директивы для задания/снятия перехода на зимнее время я не нашел в справке. Хотелось бы зону оставить, но так, чтобы переход на зимнее время убрался. Может, это и не есть корень зла, и отображение экипажа не работает по другой причине, но хотелось бы эту проблему со временем решить. Буду признателен за помощь! Добавлено Да, в виндах стоит московское время без перехода на зимнее. |
Сообщ.
#2
,
|
|
|
В PHP есть встроенная база данных времени. В ней содержится отношение зона+текущее время по UTC+текущее смещение от UTC. То есть она знает, что 27-го марта в Москве летнее время. А знает она потому, что создана была достаточно давно.
Проблема усугубляется тем, что эта база вкомпилена в PHP, а PHP ветки 5.2 больше не поддерживается и обновлений для него не будет (емнип, обновление этой БД, затрагивающее МСК было осенью 2011-го, а PHP 5.2.17 вышел ещё весной). Варианты решения: 1. можно попробовать найти более-менее новое расширение timezone (не уверен, что для windows оно есть - в некоторых юниксах есть в репозитории). Можно попробовать начать от сюда: http://pecl.php.net/package/timezonedb 2. пересобрать PHP, взяв новую версию ext/date/lib/timezone*.* 3. самое лучшее (хотя и не всегда возможно сделать быстро) обновить PHP. |
Сообщ.
#3
,
|
|
|
У меня до недавнего времени был PHP 5.3, потом совсем чуток попробовал на PHP 5.4. Откатился к PHP 5.2, потому что в более новом у меня не работал libcurl. Как выяснилось - из-за конфликта бинарников Apache, собранных в VC6, и бинарников самого PHP для двух последних версий, собранных в VC9 - модуль PHP просто сбаивал и перезагружался. Установка 5.2-версии это устранила.
Наверно, все-таки лучше, из предложенных вариантов, полноценно портануться на 5.3 или 5.4. Для этого надо найти бинарники Apache, собранные в VC9, такие вроде бы где-то есть. Попробую уже завтра утром нарыть. |
Сообщ.
#4
,
|
|
|
Ээээ, а если поднимать на локалхосте, то зачем лишние геморы? Качаешь боянистый денвер и радуешься жизни
|
Сообщ.
#5
,
|
|
|
Гм, ну привык уже как-то ставить Apache + PHP + MySQL по отдельности. Как-то поставил какую-то сборку (не денвер) - там проблема с кодировкой в MySQL была, СУБД вообще не запускалась, починить не удалось.
|
Сообщ.
#6
,
|
|
|
Господа, нарыл на Apache Lounge билд Apache в VC10 ажно, там было сказано, что PHP в VC9 он тоже будет нормально грузить. PHP обновил до 5.4. В phpinfo() это видно, как и timezone Europe/Moscow. Но вызов echo date("H:i:s"); по-прежнему печатает по зимнему времени, то есть, на час больше!
Добавлено Это уж злобно, билд-то PHP-февральский! Добавлено Гм, странно, после перезагрузки системы стал модуль PHP валиться. Наверно, надо все-таки апач в VC9 поставить... Добавлено Поставил бинарники Apache VC9 - просто переписал все файлы в папках bin и modules - сайты на локалхосте заработали намана. Ну теперь буду думать, как дальше траблу со временем решать, раз портирование на самую свежую версию PHP не помогло. |
Сообщ.
#7
,
|
|
|
а date('r T') ?
|
Сообщ.
#8
,
|
|
|
Гм, все равно вдруг снова сайт на локалхосте начал валиться...
Добавлено Цитата negram @ а date('r T') ? Дает тоже на час больше, +4 MSK |
Сообщ.
#9
,
|
|
|
Цитата Homez @ Так мы сейчас по этому времени и живем, разве нет? Дает тоже на час больше, +4 MSK |
Сообщ.
#10
,
|
|
|
Да вроде нет, перехода же на зимнее время больше нет.
|
Сообщ.
#11
,
|
|
|
Цитата Homez @ Нету, только отменили переходы именно в тот момент, когда мы находились на зимнем времени Да вроде нет, перехода же на зимнее время больше нет. Добавлено Или наоборот, отменили переход на летнее время, а не зимнее, я забыл, но усвоил, что теперь мы живем по +4 (а не +3 как раньше) Это было ИМХО, потому, что я уже сам запутался... Добавлено Вот у тебя сейчас сколько времени? Ты ведь по Московскому живешь? У меня 14:40 (округлил) и при этом труба мне говорит, что живу я по GMT + 04:00 |
Сообщ.
#12
,
|
|
|
Может, труба у тебя старее, чем переход на зимнее время отменили? Я вообще-то думал, что GMT + 4 - это на час больше, зимнее время. У меня тоже эмулятор андроид думает, что московское время - это GMT +4. В результате пришлось поставить другой часовой пояс, чтобы было +3, тогда время стало показывать в эмуляторе правильно.
Добавлено fatalist, может, Вы и правы. Но тогда получается, что это моя 7ая винда неправильно считает время? Там часовой пояс Москвы считается как GMT + 3. Получается, мне нужно поставить другой часовой пояс, где GMT + 4? Как решить-то эту проблему, чтобы больше ничего не слетело, особенно в даты, когда раньше время переводилось? P.S. Да, подсиропил нам Медведев... |
Сообщ.
#13
,
|
|
|
Откатился на PHP 5.2.17 и Apache 2.2, так как не удалось справиться с завалами модуля PHP
Добавлено Удалось нарисовать машинку на карте, но дя этого пришлось в загружаемых файлах с состоянием экипажа и координатами задать время на час больше текущего. Правильно, сервер ведь думает, что сейчас на 1 час больше. Кстати, date('r T') выдает Wed, 28 Mar 2012 17:18:46 +0400 MSD. Судя по часовому поясу, наверно и в этой версии PHP проблема со временем решена. Наверно, дело в винде, которая думает, что у меня GMT + 3. Как это решить? |
Сообщ.
#14
,
|
|
|
А в винде последние обновления стоят?
|
Сообщ.
#15
,
|
|
|
Цитата Homez @ Там наверное списки просто не поправили... у меня тоже написано +3, но я знаю, что живу по +4 и винда мне на это не указчик Наверно, дело в винде, которая думает, что у меня GMT + 3. Как это решить? |