在我的网格中,我有以下
$this->addColumn('end_date', array(
'header' => $this->__('End Date'),
'align' => 'right',
'width' => '150px',
'type' => 'datetime',
'format' => \IntlDateFormatter::MEDIUM,
'index' => 'end_date',
'frame_callback' => array($this, 'callbackColumnEndTime')
));
它仅按日期过滤日期时间值,忽略时间。在magento DateTime过滤器中有方法_convertDate,其中magento用于过滤我的日期时间,但它总是调用return parent :: _ convertDate($ date)并仅按日期过滤它,忽略时间,因为$ this-> getColumn() - > getFilterTime()返回null。我的问题是如何按日期时间过滤,而不仅仅按日期过滤。我假设addColumn中有一些选项可以执行此操作(也许它会在幕后调用setFilterTime($ timePart))。
protected function _convertDate($date)
{
if ($this->getColumn()->getFilterTime()) {
try {
$timezone = $this->getColumn()->getTimezone() !== false
? $this->_localeDate->getConfigTimezone() : 'UTC';
$adminTimeZone = new \DateTimeZone($timezone);
$simpleRes = new \DateTime($date, $adminTimeZone);
$simpleRes->setTimezone(new \DateTimeZone('UTC'));
return $simpleRes;
} catch (\Exception $e) {
return null;
}
}
return parent::_convertDate($date);
}