На форуме php-функция time() отстаёт на 3 часа...
Рекомендованные сообщения
Сейчас на странице 0
- Нет пользователей, просматривающих эту страницу.
A better way to browse. Learn more.
A full-screen app on your home screen with push notifications, badges and more.
php 5.3.3
На сервере временные зоны установлены корректные. В настройках php указано:
php-функция time() на сайте возвращает корректное время,
на форуме (при выполнении форумного скрипта) - на 3 часа отстаёт.
Проверил - виноват вот этот код (initdata.php):
/** * Fix for PHP 5.1.x warning * * Sets default time zone to server time zone * @since 2.2.0.2006-05-19 */ if ( function_exists( 'date_default_timezone_set' ) and !defined( 'DO_NOT_SET_TIMEZONE' ) ) // bug report 25566 { if ( ! @date_default_timezone_get() ) { date_default_timezone_set( @ini_get('date.timezone') ? ini_get('date.timezone') : 'UTC' ); } else { date_default_timezone_set( 'UTC' ); } }А именно - последняя строка кода, которая сбрасывает [date.timezone] в глобальный [uTC]:
date_default_timezone_set( 'UTC' )
Объясните на пальцах логику приведённого кода. В данном случае функция [date_default_timezone_get] возвращает зону, установленную в [date.timezone] и далее (else) сбрасывает её в [uTC]. Зачем ?
Изменено пользователем cyrax_02