Magento 2网格列按日期时间过滤

时间:2016-08-08 13:12:28

标签: php magento2

在我的网格中,我有以下

     $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);
    }

0 个答案:

没有答案