订单确认邮件显示夏令时时区错误

Order confirmation email shows wrong timezone in summer time

当我创建订单时,订单确认电子邮件显示错误的时间。

怎么了?

即使我更改了 Mage.php、locale.php 和 config.xml 的默认时区,订单确认电子邮件仍向我显示了 EDT+1 日期。 它非常有线。有什么解决办法吗?

我已经匹配了服务器时间、网络服务器时间和商店时区。

在电子邮件模板中创建的时间 {{var order.getCreatedAtFormated('long')}} 向我们展示了 "UTC+1"。 希望好的解决方案。

评论:我在本地服务器和实时站点上调试了它。 当我得到这些代码的时间结果时,现场网站显示错误的时间。

所有来源都相同,因为本地来源是从实时站点克隆而来的 现场使用外部数据库(RDS),但本地服务器不是。

\app\code\core\Mage\Sales\Model\Abstract.php

/**
 * Get object created at date affected with object store timezone
 *
 * @return Zend_Date
 */
public function getCreatedAtStoreDate()
{
    return Mage::app()->getLocale()->storeDate(
        $this->getStore(),
        Varien_Date::toTimestamp($this->getCreatedAt()),
        true
    );
}

解决了这个问题。 在某些模块中,有时区重置代码部分。 结算为"EST"。 用UTC修复后,订单邮件时间更正。

    //date_default_timezone_set('EST');
    date_default_timezone_set(Mage_Core_Model_Locale::DEFAULT_TIMEZONE);

成功解决。