Magento Установите Grid для автоматической фильтрации по текущему дню, используя существующий столбец Datetime в Grid - PullRequest
1 голос
/ 24 марта 2010

В Magento я создаю собственный модуль и хотел бы иметь возможность автоматически фильтровать по столбцу datetime, чтобы в начальном списке отображались только объекты, связанные с «сегодняшней» датой.

Вот мой столбец даты и времени:

$this->addColumn('ts', array(
    'header'    => $hlp->__('Activated'),
    'align'     => 'left',
    'index'     => 'ts',
    'type'      => 'datetime',
    'width'     => '160px',
));

Я думаю, у меня должен быть способ добавить фильтр в коллекцию следующим образом:

$now = Mage::getModel('core/date')->timestamp(time());
$dateTime = date('m/d/y h:i:s', $now);

$collection = Mage::getModel('mymodule/items')->getCollection()
   ->addFieldToFilter('ts', $dateTime);

Но это не работает?

Я использую неправильный фильтр? Моё поле "ts" в базе данных является полем "datetime", но по умолчанию magento "From:" - "To:" селекторы диапазона дат не используют часы, минуты, секунды.

Есть идеи?

Спасибо, Tegan

Ответы [ 2 ]

9 голосов
/ 24 марта 2010

Это похоже на работу. Я неправильно отформатировал свое время.

$now = Mage::getModel('core/date')->timestamp(time());
$dateStart = date('Y-m-d' . ' 00:00:00', $now);
$dateEnd = date('Y-m-d' . ' 23:59:00', $now); 

$collection = Mage::getModel('mymodule/items')->getCollection()
   ->addFieldToFilter('ts', array('from' => $dateStart, 'to' => $dateEnd));
0 голосов
/ 14 апреля 2012

Я думаю, что это должно быть

$dateEnd = date('Y-m-d' . ' 23:59:59', $now);

вместо

$dateEnd = date('Y-m-d' . ' 23:59:00', $now); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...