Magento Locale /时区问题

时间:2015-04-02 17:04:51

标签: php magento zend-framework locale magento-1.9.1

我最近从Magento 1.5升级到1.9,我注意到日期/时间有些奇怪的行为。我不能说在升级之前我非常注意这一点,所以我会尝试回去测试1.5,以确认它没有发生。到目前为止,我已经在我们的实时制作网站,我的网站的本地开发版以及一个完全没有自定义的干净的Magento CE 1.9.1.0上进行了测试,每次都得到相同的结果。我看到的问题是,在某些情况下,客户"创建于"时间变得错误,以便交换月和日值。可靠再现的步骤是:

  1. 在前端下订单,使用保存帐户以供日后使用的选项
  2. 进入管理员并查看客户的帐户。注意"创建于"时间。例如,今天它将在2015年4月2日发布。
  3. 从管理员处为同一客户创建新订单。
  4. 下订单后,返回客户的帐户并查看"创建于"时间。请注意,它已更改为" 2015年2月4日"。
  5. 重复步骤3-4并注意它已更改"创建于"回到" 2015年4月2日"
  6. 正如我所说,在我们的网站代码和干净的1.9.1.0安装中,我在2台不同的服务器上发生这种情况,这让我相信它是代码中的错误,而不是配置问题,但我&#39 ;我不是100%肯定。时区,语言环境等可能会有点混乱,所以我可能在设置中出错了。如果您有任何想法或可以/不能重现这一点,请分享您的发现/想法。

    谢谢!

3 个答案:

答案 0 :(得分:0)

您是否正确设置了区域设置选项?

System > Configuration > GENERAL > General > Locale Options (3rd Option)

答案 1 :(得分:0)

我也碰到了同样的问题。这个问题的答案在这里:https://magento.stackexchange.com/questions/18062/customer-created-at-date-off-by-months?lq=1

如果您的文件中没有$ this-> _getFormat()函数。看这里: https://gist.github.com/ihor-sviziev/e96064240d167457709e

请记住刷新缓存。

答案 2 :(得分:-1)

或许,您有以下问题:

Mage_Sales_Model_Order是子类,并且提供了一个具体的getCreatedAt方法(而不是魔术方法)

存储在created_at列中的相关订单的数据实际上是否包含Unix时间戳或其他一些数据?这可能暗示非法的架构更改。 要测试模型是否为子类,请回显get_class($order) - 如果模型已被重写以进行诊断,则删除重写。