Опубликовано: 11 июля 20214 г Здравствуйте. Подскажите, как сравнять часовой пояс форума и сервера? из коробки в init.php стоит настройка /* Set timezone */ date_default_timezone_set( 'UTC' ); При этом на форуме время правильное, но если в каком либо блоке написать echo date("H:i", time()); то время будет отставать на 3 часа Если в эту переменную вставить date_default_timezone_set( 'Europe/Moscow' ); то время на форуме будет спешить на 3 часа, а time() будет впорядке. Как сравнять время форума и time() ?
Опубликовано: 11 июля 20214 г Автор При этом, при установке часового пояса Москва в титле время правильное, а в общем - спешит
Опубликовано: Вчера в 19:051 дн Также перелопатил кучу инфы, но так и не смог разобраться. Понятно, что этот код виновен в отставании времени по Москве :)/* Set timezone */ date_default_timezone_set( 'UTC' );Возможно siv1987 уже дал ответ и все всё поняли, но не я :) Куда и как использовать этот класс \IPS\DateTime.
Опубликовано: Вчера в 19:471 дн 40 минут назад, ovi8 сказал:Также перелопатил кучу инфы, но так и не смог разобраться. Понятно, что этот код виновен в отставании времени по Москве :)/* Set timezone */date_default_timezone_set( 'UTC' );Возможно siv1987 уже дал ответ и все всё поняли, но не я :) Куда и как использовать этот класс \IPS\DateTime.Нужно менять в настройках php. Посмотрите этот ответ, один из вариантов настройки https://ipbskins.ru/forums/topic/16688-chasovoy-poyas/#findComment-111046
Опубликовано: Вчера в 20:041 дн Если "Europe/Moscow" ставишь, то время начинает спешить на те же 3 часа. Я так понял, здесь что-то похоже на объяснение - https://ipbskins.ru/forums/topic/14762-na-forume-php-funktsiya-time-otstayot-na-3-chasa/#findComment-100527При обновлении страницы, то всё ОК время возвращается правильно, такая проблема только при первом заходе. И с этим можно было бы жить, но в приложении "Календарь" если событие попадает на 1 число месяца и начинается в период 00 до 2:59 ночи оно не отображается, эх.Ну и в этой же теме есть решение от Сайрекса, только я не знаю куда его ставить и надо ли его ставить, так как там речь о тройке, а у меня сейчас 4 версия форума, хотя разницы не должно быть наверное.if(($currentTimeZone = date_default_timezone_get()) != ini_get('date.timezone')) { date_default_timezone_set(ini_get('date.timezone')); } $date = date('Y-m-d H:i:s', $time()); if($currentTimeZone != date_default_timezone_get()) { date_default_timezone_set($currentTimeZone); } Изменено вчера в 20:151 дн пользователем ovi8
Опубликовано: 23 часа назад23 час 39 минут назад, ovi8 сказал:И с этим можно было бы жить, но в приложении "Календарь" если событие попадает на 1 число месяца и начинается в период 00 до 2:59 ночи оно не отображается, эх.Я сейчас ради любопытства создал мероприятие как вы написали, действительно оно не отображается, кажется знаю место, позже напишу.
Опубликовано: 7 часов назад7 час Отписался в теме на форуме разработчиков, данная проблема как в IPS4, так и в IC5.События на границе месяца не попадают в выборку, если они созданы с отличной от UTC временной зоной и дата и время начала события начинается с 1 числа месяца, а время начала входит в диапазон смещения от UTC. Особенно это заметно когда событие начинается в 7 утра 1 числа месяца в зоне UTC+8.Для IPS 4 в файле applications/calendar/sources/Event/Event.phpНайти:$startDateTimezone = \IPS\calendar\Date::parseTime( $startDate->mysqlDatetime(), TRUE );Заменить на:$startDateTimezone = \IPS\calendar\Date::parseTime( $startDate->mysqlDatetime() );
Опубликовано: 4 часа назад4 час Здоров, это помогло! На форумах точно такая же проблема присутствует хотя она там не так критична. Если не заходить на сайт какое-то время, то при первом заходе (наверняка кэш обновляется) пост также отстает на 3 часа, после любого действия на странице время приходит в норму. Всё это звенья одной цепи с пользовательским отображением времени... Изменено 4 часа назад4 час пользователем ovi8
Опубликовано: 6 минут назад6 мин 4 часа назад, ovi8 сказал:На форумах точно такая же проблема присутствует хотя она там не так критична.Зафиксирую пока здесь, позже посмотрюПервый заходПосле обновления страницы
Здравствуйте.
Подскажите, как сравнять часовой пояс форума и сервера?
из коробки в init.php стоит настройка
/* Set timezone */ date_default_timezone_set( 'UTC' );При этом на форуме время правильное, но если в каком либо блоке написать
echo date("H:i", time());то время будет отставать на 3 часа
Если в эту переменную вставить
date_default_timezone_set( 'Europe/Moscow' );то время на форуме будет спешить на 3 часа, а time() будет впорядке.
Как сравнять время форума и time() ?