2011-01-13 4 views
1


DB의 한 필드에 문제가 있습니다. 모든 필드가 expire_date을 제외하고는 테이블에 저장됩니다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(); 

:이 코드. die($expireData)의 주석을 삭제하면 2012-01-13 13:21:12와 같은 올바른 값이 표시됩니다. 입력란은 다음과 같이 정의됩니다.

`expire_date` datetime NULL 

의견이 있으십니까?

편집 : 솔루션은 다음과 같습니다 내 strtotime으로 발현

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

체크 아웃 "s"를.

답변

2

많은 특성들이 글쓰기와 읽기 후에 일종의 서식을 허용한다는 것을 알고 있습니다. 유닉스 타임 스탬프로 값을 설정하려고 시도 했습니까?

+0

OMG !!! strtotime 식에 "s"가 누락 된 것으로 밝혀졌습니다. "월"이 아니라 "월"이어야합니다. 대답은 정말로 해결책이 아니지만 나를 생각하게 만들었고 그것을 발견하는 데 도움이되었으므로 여기에 몇 가지 요점이 있습니다.) 고맙습니다 clockworkgeek, 주위에서 봐요 – OSdave

관련 문제