我跟着這個鏈接步驟的日期字段添加到我的自定義模塊:Magento的自定義模塊日期字段保存日期一天選定日期之前
http://magentomechanic.blogspot.com/2010/01/to-add-custom-date-field-in-custom.html
一切正常,除了那當我選擇日期和保存配置,它返回我日期的前一天所選擇的一個:(
例如:
當我選擇25二月,20 12和保存,將保存並返回2月24日,2012年
通知之前:(
我得到這個當我的print_r在管理控制器($模型)之前保存保存第一天:
[start_date] => 2012-01-24 16:00:00 // i set it to 25 but its saving 24
[end_date] => 2012-01-26 16:00:00 // i set it to 27 but .....
[status] => 1 [content] => asdasdadsd
[created_time] => 2012-01-25 07:27:11 // it gives current date and it is O'rite
[update_time] => 2012-01-25 07:27:11) //it gives current date and it is O'rite
注:
我呼應發佈日期,這是正確的我設置爲意味着發佈數據沒有問題, 意味着客戶端對於任何錯誤都是明確的,所以問題出在哪裏是什麼時候它被轉換爲保存在數據庫中!任何幫助?
這裏是我的initiall代碼我想:
if($data['start_date'] != NULL)
{
$date = Mage::app()->getLocale()->date($data['start_date'], Zend_Date::DATE_SHORT);
$model->setStartDate($date->toString('YYYY-MM-dd HH:mm:ss'));
}
if($data['end_date'] != NULL)
{
$date1 = Mage::app()->getLocale()->date($data['end_date'], Zend_Date::DATE_SHORT);
$model->setEndDate($date1->toString('YYYY-MM-dd HH:mm:ss'));
}
那麼我想這一個:
echo $format = Mage::app()->getLocale()->getDateFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT).'<br/>';
if($data['start_date'] != NULL)
{
echo $data['start_date']."<br/>"; // 01/27/12 correct date posted which i entered
$date = Mage::app()->getLocale()->date($data['start_date'], $format);
echo $date; /// Jan 26, 2012 4:00:00 PM but here we get back to one day
$time = $date->getTimestamp();
$model->setStartDate(Mage::getSingleton('core/date')->date(null, $time));
//$model->setStartDate($date->toString('YYYY-MM-dd HH:mm:ss'));
}
if($data['end_date'] != NULL)
{
echo $data['end_date'].'<br/>';
$date1 = Mage::app()->getLocale()->date($data['end_date'], $format);
$time = $date1->getTimestamp();
$model->setEndDate(Mage::getSingleton('core/date')->date(null, $time));
//$model->setEndDate($date1->toString('YYYY-MM-dd HH:mm:ss'));
}
$格式相呼應:M/d/yy的 原貼日期:01/27/12 $ date回覆結果:2012年1月26日4:00:00
您是否檢查過表單中的值是否正確提交?在達到控制器操作時它們是否正確?如果不是的話,你會遇到客戶端問題。如果他們被正確提交:在你的'print_r'給出之前'echo date_default_timezone_get();'是什麼? –
它的UTC時,我呼應它:) – atif