订单确认电子邮件在夏令时显示错误的时区

时间:2018-03-22 15:21:25

标签: email magento timezone dst

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

  • 在仪表板的订单列表上创建的订单时间是正确的,只显示EDT。
  • “sales_flat_order”表的“created_at”列将订购时间存储为UTC。
  • 订购电子邮件的时间是“UTC + 1”。
  • 我必须在订购电子邮件中显示EDT时间。

怎么了?

  • 冬天的时候,订单邮件给我看了“UTC”。
  • 在2010年3月11日之后(夏季时间),订单电子邮件显示“EDT + 5”(与UTC + 1相同)。

即使我在Mage.php,locale.php和config.xml上更改了默认时区,订单确认电子邮件也显示了EDT + 1日期。 这很有线。有什么解决方案吗?

我已经匹配了服务器时间,Web服务器时间和存储时区。

  • 服务器时区:EDT。
  • 网络服务器时区:America / New_York
  • magento timezone:America / New_York。

在电子邮件模板中创建的时间{{var order.getCreatedAtFormated('long')}} 向我们显示“UTC + 1”。 enter image description here 希望很好的解决方案。

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

  • $命令 - > getCreatedAt();本地时间输出 - UTC,实时输出 - UTC
  • $命令 - > getCreatedAtStoreDate();本地 - EDT,直播 - UTC + 1(估计结果必须与本地服务器相同的EDT)

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

\应用\代码\核心\法师\ SALES \模型\ 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
    );
}

1 个答案:

答案 0 :(得分:0)

解决了这个问题。 在一些模块中,有时区重置代码部分。 它被定为" EST"。 用UTC修复后,订单电子邮件的时间得到纠正。

@remote view

成功解决。