当我们在后台 Form.php
设定某个 输入框的时候有时候 我们需要设定一个可以选择时间的输入框
代码:
$fieldset->addField(‘date’, ‘date’, array(
‘label’ => Mage::helper(‘web’)->__(‘Date’),
‘after_element_html’ => ‘<small>Comments</small>’,
‘tabindex’ => 1,
‘image’ => $this->getSkinUrl(‘images/grid-cal.gif’),
‘format’ =>Mage::app()->getLocale()->getDateFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT)
));
这个时候我们就可以选择日期啦,但是我们通常还需要精确到 小时或者分钟 或者秒
(例如 限时抢购功能)
那么我们需要修改代码:
$fieldset->addField(‘date’, ‘date’, array(
‘label’ => Mage::helper(‘web’)->__(‘Date’),
‘after_element_html’ => ‘<small>Comments</small>’,
‘tabindex’ => 1,
‘time’ => true,
‘image’ => $this->getSkinUrl(‘images/grid-cal.gif’),
‘format’ =>Mage::app()->getLocale()->getDateTimeFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT)
));
添加 time 为true 会发现选择时间的 那个插件出现了 hours 和 minutes 选项
format 使用了getDateTimeFormat 函数就可以同时显示出 hour 和 minute
可以找到 getDateTimeFormat的定义
public function getDateTimeFormat($type)
{
return $this->getDateFormat($type) . ‘ ‘ . $this->getTimeFormat($type);
}
我们也可以直接设定 format 为:
‘format’ => ‘yyyy-MM-dd HH:mm:ss’
不需要秒
‘format’ => ‘yyyy-MM-dd HH:mm:00’,
或者
‘format’ => ‘yyyy-MM-dd HH:mm’,
接下来就是 save函数等修改,防止 其中一些 格式过滤函数把我们现在的时间格式认为是不合法的。
还有一些grid 显示的地方:
在 Grid.php 中修改 addColumn 函数 中的 type
‘type’ => ‘datetime’, 即可
如果 显示的格式还是不合你意 那么你可以直接修改文件
app\code\core\Mage\Adminhtml\Block\Widget\Grid\Column\Renderer\Datetime.php
修改 其中的render函数即可。
(如果时间显示不正确 例如始终 差了几个小时 可能是时区设置问题 ,修改时区即可)
addField 还有 time 这个type
$fieldset->addField(‘time’, ‘time’, array(
‘label’ => Mage::helper(‘form’)->__(‘Time’),
‘class’ => ‘required-entry’,
‘required’ => true,
‘name’ => ‘title’,
‘onclick’ => “”,
‘onchange’ => “”,
‘disabled’ => false,
‘readonly’ => false,
));
显示的样子类似
此文章通过 python 爬虫创建,原文是自己的csdn 地址: magento 后台模块开发之设定时间 显示小时和分钟