在Magento中显示产品更新日期

时间:2014-03-24 16:02:53

标签: date magento product

我想在Magento产品页面中显示上次更新的日期(而不是创建日期)。

<?php echo $_product->getUpdatedAt();?> IS WORKING

但我不想展示时间 - 只有DATE。

这可能吗?

2 个答案:

答案 0 :(得分:7)

Ashley的解决方案应该可行,但您可能必须首先将其包装在strtotime()

echo date("Y-m-d", strtotime($_product->getUpdatedAt()));

我建议使用Magento的日期模型来计算你的时区(它还会照顾你的时间戳)。

echo Mage::getModel('core/date')->date("Y-m-d", $_product->getUpdatedAt());

查看app/code/core/Mage/Core/Model/Date.php

<?php

class Mage_Core_Model_Date
{
    /**
     * Converts input date into date with timezone offset
     * Input date must be in GMT timezone
     *
     * @param  string $format
     * @param  int|string $input date in GMT timezone
     * @return string
     */
    public function date($format = null, $input = null)
    {
        if (is_null($format)) {
            $format = 'Y-m-d H:i:s';
        }

        $result = date($format, $this->timestamp($input));
        return $result;
    }

    /**
     * Converts input date into timestamp with timezone offset
     * Input date must be in GMT timezone
     *
     * @param  int|string $input date in GMT timezone
     * @return int
     */
    public function timestamp($input = null)
    {
        if (is_null($input)) {
            $result = $this->gmtTimestamp();
        } else if (is_numeric($input)) {
            $result = $input;
        } else {
            $result = strtotime($input);
        }

        $date      = Mage::app()->getLocale()->date($result);
        $timestamp = $date->get(Zend_Date::TIMESTAMP) + $date->get(Zend_Date::TIMEZONE_SECS);

        unset($date);
        return $timestamp;
    }
}

答案 1 :(得分:-1)

Magento将updatedAt属性存储为mysql时间戳。您需要使用普通的PHP日期函数来仅显示日期部分。

e.g。

echo date("Y-m-d", $_product->getUpdatedAt());

没有特定的magento函数,只是简单的PHP,虽然您可以使用一些内置的语言环境方法来显示用户时区的正确日期,但同样,这可以通过良好的老式PHP来完成。