【问题标题】:Get orders items from last 24 hours in Magento获取 Magento 过去 24 小时内的订单商品
【发布时间】:2013-01-04 18:11:36
【问题描述】:

我正在尝试获取过去 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

【问题讨论】:

    标签: magento


    【解决方案1】:

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

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

    【讨论】:

    • 我以为会是这样,但是文档显示添加 'datetime' => true 会告诉 Magento from 和 to 是日期,Magento 会处理格式。
    • @NickParsons 啊,很好,我不知道。感谢您指出。 :)
    • 嗨,请问如何使用 Mage::getModel('core/date') 使其更准确?
    【解决方案2】:

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

    ->addFieldToFilter('created_at', array(
        'from'     => strtotime('-1 day', time()),
        'to'       => time(),
        'datetime' => true
    ))
    

    【讨论】:

      猜你喜欢
      • 2016-10-08
      • 2019-11-04
      • 2014-09-17
      • 2012-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-30
      • 1970-01-01
      相关资源
      最近更新 更多