10

我正在尝试获取过去 24 小时内的所有订单商品。我已经锁定了查询,所以它给了我我需要的东西(一个 order_id 和 created_on 值)。

$order_items = Mage::getResourceModel('sales/order_item_collection')
    ->addAttributeToSelect('order_id')
    ->addAttributeToSelect('created_at')
    ->addFieldToFilter('sku', $membership_sku)
    ->toArray();

我已经搜索过了,看起来我需要添加另一个 ->addFieldToFilter() 属性,但我不太确定它应该如何构建。任何例子都会非常有帮助。

如果有帮助,我正在使用 Magento Enterprise v1.12.0.2

4

2 回答 2

20

我认为你需要重新安排你的时间才能获得好的结果:

$time = time();
$to = date('Y-m-d H:i:s', $time);
$lastTime = $time - 86400; // 60*60*24
$from = date('Y-m-d H:i:s', $lastTime);
$order_items = Mage::getResourceModel('sales/order_item_collection')
    ->addAttributeToSelect('order_id')
    ->addAttributeToSelect('created_at')
    ->addAttributeToFilter('created_at', array('from' => $from, 'to' => $to))
    ->load();
于 2013-01-04T10:11:36.510 回答
15

经过一些额外的研究,我在这里找到了文档。我决定使用 strtotime 因为它更容易,但是如果其他人有更好的解决方案,请告诉我。

->addFieldToFilter('created_at', array(
    'from'     => strtotime('-1 day', time()),
    'to'       => time(),
    'datetime' => true
))
于 2013-01-04T05:07:10.727 回答