Magento, поле в 1 дБ не сохранено - PullRequest
1 голос
/ 13 января 2011


У меня проблема с одним полем БД. С этим кодом:

$expireMonth = Mage::getStoreConfig('points_options/config_points/expiration_period', Mage::app()->getStore()->getId());

if (!is_null($expireMonth) && ($expireMonth > 0)) {
    $expireDate = date("Y-m-d H:i:s", strtotime("+" . $expireMonth . " month"));
} else {
    $expireDate = NULL;
}

//die($expireDate);
//store in points history table
$this->_pointsModel->setCustomerId($this->_customer->getId())
                   ->setOrdersId('welcome')
                   ->setPointsPending($pointsForNewCustomer)
                   ->setPointsComment(Mage::helper('points')->__('welcome points'))
                   ->setDateAdded(date('Y-m-d H:i:s'))
                   ->setPointsStatus(2)//confirmed
                   ->setPointsType('WE')
                   ->setStoreId(Mage::app()->getStore()->getId())
                   ->setExpireDate($expireDate)
                   ->save();

Все поля сохраняются в таблице, кроме expire_date. Если я раскомментирую die($expireData), я увижу правильное значение, например, 2012-01-13 13:21:12. Поле определяется как:

`expire_date` datetime NULL

Есть мысли?

edit: Решение:

$expireDate = date("Y-m-d H:i:s", strtotime("+" . $expireMonth . " months"));

Проверьте "s" в моем выражении strtotime.

1 Ответ

2 голосов
/ 13 января 2011

Я знаю, что многие атрибуты допускают некоторое форматирование перед записью и после чтения.Вы пробовали установить значение как метку времени Unix?

...