2011-01-13 11 views
1


DBの1つのフィールドに問題があります。このコードでは:Magento、1 dbフィールドは保存されません。

$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 

編集:ソリューションです:私のstrtotime式の "s" を

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

チェックしてください。

答えて

2

私は多くの属性を書き込む前と読んだ後の書式設定のいくつかの並べ替えを可能に知っています。代わりにUNIXのタイムスタンプとして値を設定しようとしましたか?

+0

OMG !!!私のstrtotime式に「s」がないことが判明した場合、「月」ではなく「月」でなければなりません。あなたの周りを参照してください) ありがとうのclockworkgeek; いくつかのポイントがあり、ここで、あなたの答えは本当に解決策ではないですが、あなたは私がそれabouot考えさせ、それはそれを見つけるために私を助けたので、 – OSdave

関連する問題