【问题标题】:Magento ouputting incorrect date and timeMagento 输出不正确的日期和时间
【发布时间】:2012-09-21 09:58:13
【问题描述】:

如果我在 index.php echo date('m/d/Y h:i:s a', time()); 中输出日期/时间。这是正确的。如果我在那之后的任何地方输出日期/时间,例如在扩展中它正好关闭 4 小时。我已经在 php.ini 和 Magento 本身中正确设置了时区,所以不确定是什么导致它关闭。我正在运行版本 1.7.0.2。

编辑

好的,所以我学到了一些东西。

Magento 总是将时区设置为 UTC 应用程序/mage.php

line 767: date_default_timezone_set('UTC')

所以,基本上你不能使用 date()、time() 等。你必须在 Admin->System->Configuration / General->Locale 选项中设置你的目标时区并使用类似的东西:

$now = Mage::getModel('core/date')->timestamp(time());
echo date('m/d/y h:i:s', $now);

我总是可以用我的时区替换第 767 行,但我不喜欢修改核心代码。还有其他选择吗???

【问题讨论】:

    标签: magento date time timezone


    【解决方案1】:

    Magento 中的首选方法似乎是使用 Zend 或 Varien 日期时间对象,而不是 this example 中的标量值。获得对象后,您可以通过 setTimezone 调用轻松地将其转换为其他非服务器时区。

    // a more complete example
    $datetime = Zend_Date::now();
    // admin controls this output through configuration
    $datetime->setLocale(Mage::getStoreConfig(
                 Mage_Core_Model_Locale::XML_PATH_DEFAULT_LOCALE))
             ->setTimezone(Mage::getStoreConfig(
                 Mage_Core_Model_Locale::XML_PATH_DEFAULT_TIMEZONE));
    echo $datetime->get(Zend_Date::DATETIME_SHORT);
    

    【讨论】:

      【解决方案2】:

      如果您在 Magento 的数据库中保存日期,请确保它们采用 UTC。默认情况下,Magento 将所有日期保存为 UTC,但它应该以本地时区显示它们。

      【讨论】:

        【解决方案3】:

        在我的情况下,时间会有所不同,例如system.log 也在调度程序(cronjobs)中。

        假设现在是 01.15 实时,调度程序中的 Created 时间总是正确的,所以在这种情况下是 01.15。比执行时间有时是 01.16 但通常是 02.16,所以你会看到 01.16 和 02.16 的混合,所以时间连续变化。

        当我检查系统日志时,我看到了同样的情况,首先你会看到像 01.50、02.45、03.50 和突然 02.55 这样的消息的时间在增加。

        所以系统中有一些东西让这次变化,但是在哪里,也许我的提供者找到了一些东西......但这不是系统时间,它与 Magento .. Magento 写入日志..

        编辑:

        我不知道为什么会出现这个问题,但我在我所在区域 Europe/Amsterdam 的 Mage.php 中更改了 UTC 时间。现在所有时间都是正确的,在日志中也是如此。

        但又出现了一个问题,当我在调度程序(扩展)中立即安排一个 cronjob 时,这个作业被安排在 1 小时后(调度程序中的其他时间是正确的)。一个扩展哥白尼运行在例如18.00(不是通过调度程序)并写道它上次在 17.00 执行...没有其他非 Magento 网店有这种问题..数据库也在 php.ini 中使用 Europe/Amsterdam ..

        【讨论】:

          猜你喜欢
          • 2021-03-05
          • 2012-03-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多