19 апр. 2012
Если вы используете стандартные функции времени date(), time(),now(), и т.д напрямую в коде Magento, то вы будете удивлены...
Даже если вы правильно выставили временную зону сервера, выведенное время неприятно вас удивит
//Выводим дату и получаем не то время
$now = time();
echo date('m/d/y h:i:s', time());
Это все происходит независимо от того какие у вас настройки в php.ini.
Magento сбрасывает временную зону на UTC в Mage_Core_Model_App
Файл:- app/code/core/Mage/Core/Model/App.php Строка:-365
/**
* Initialize PHP environment
*
* @return Mage_Core_Model_App
*/
protected function _initEnvironment() {
$this->setErrorHandler(self::DEFAULT_ERROR_HANDLER);
date_default_timezone_set(Mage_Core_Model_Locale::DEFAULT_TIMEZONE);
return $this;
}
В качестве решения - нужно выставить в настройках необходимую вам временную зону и далее использовать следующий код:
$now = Mage::getModel('core/date')->timestamp(time());
echo date('m/d/y h:i:s', $now);
Надеюсь данные совет поможет сократить вам время поиска решения