На сервере временные зоны установлены корректные. В настройках php указано:
date.timezone = Europe/Moscow
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]. Зачем ?
By using this site, you agree to our Terms of Use & We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..
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]. Зачем ?
Edited by cyrax_02