Powered by CodeIgniter

Советы и решения

(55)
10
10 голосов
Решаем проблемы вместе и передаем друг другу полезные знания.
Приветствую, сообщество!

Использую Denwer в качестве тестового полигона. Несколько раз замечал что Cogear в среде windows+denwer не хочет отображать опубликованные мною посты. Но не заострял на этом внимания, т.к. не было нужды. Но сегодня такая нужда появилась…
Вся проблема оказалась в проверке времени. Получается система такая…

1) Создаем топик, время создания топика(created_time) дается при добавлении в базу самим MySQL.
`created_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 2) При выдаче постра, идет проверка времени:
$CI->db->where('nodes.created_date < \''.date('Y-m-d H',time()+3800).'\''); Выяснилось закомментированием этой строки, посты начали проявляться
Сравнив выдачу даты в обеих средах(получается created_date < mysql, promoted_date < php), обнаружил разницу во времени 6 часов (живу по алматинскому времени). Тут уже было видно, что PHP играет не по-правилам, часовой пояс явно не указан. А решение как всегда простое:

Открываем php.ini, находим следующий блок
[Date] ; Defines the default timezone used by the date functions ;date.timezone =
Меняем соответственно вашей зоне, у меня так:
date.timezone = Asia/Almaty
Список временных зон
Теперь новые посты у меня отображаются как надо. Спасибо за внимание!
15:09 ← 16 мая 2010 Отправить в Твиттер freemFreem  RSS comments 4

Комментарии (4) ↓

Автор
Freem Freem time 10:29 ← 20 мая 2010 #
Постов о denwer'e (с которым приходилось работать лет 6) от меня впредь не будет, так как с большим удовольствием перешел на ubuntu, осваиваюсь :)
inetlover inetlover time 16:53 ← 23 мая 2010 #
Не совсем по теме, но все же.
В актуальной ревизии существует баг: когда админ ставит галочку для вывода поста на главную — пост не выводится. Для этого должны происходить записи в поля promoted и promoted_date, но этого нет.
admin admin time 11:00 ← 25 мая 2010 #
Исправлено.
inetlover inetlover time 12:25 ← 25 мая 2010 #
Спасибо!