【发布时间】:2012-01-25 06:39:48
【问题描述】:
我按照此链接上的步骤将日期字段添加到我的自定义模块:
http://magentomechanic.blogspot.com/2010/01/to-add-custom-date-field-in-custom.html
一切都很好,除了当我选择一个日期并保存配置时,它返回我所选日期前一天的日期:(
例如:
当我选择 25 Feb, 2012 并保存时,它将保存并返回 24 Feb, 2012。
注意它在前一天保存:(
我在保存前在管理控制器中 print_r($model) 时得到这个:
[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
注意:
我回显了发布日期,我设置的意思是正确的,这意味着发布数据没有问题, 意味着客户端对于任何错误都很清楚,所以问题出在什么时候转换为保存在数据库中!任何帮助???
这是我尝试过的初始代码:
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 原始发布日期:2012 年 1 月 27 日 $date 回显结果:2012 年 1 月 26 日下午 4:00:00
【问题讨论】:
-
您是否检查过表单是否正确提交了值?达到控制器动作时它们是否正确?如果没有,那么您遇到了客户端问题。如果正确提交:
echo date_default_timezone_get();在您的print_r之前提供什么?
标签: magento-1.4 magento-1.5 magento