Magento订单created_date错误

Ben*_*unk 5 date magento orders

我正在尝试从特定的用户输入日期获取magento中的所有订单。

$orders = Mage::getModel('sales/order')->getCollection()->addAttributeToFilter('created_at', array('from' => $userdate));
Run Code Online (Sandbox Code Playgroud)

但是它没有拉出正确的命令。如果我使用今天的日期,它将把订单从昨天拉一半,从今天拉一半。

经过一番谷歌搜索之后,Magento中似乎存储了两个日期

$order->getCreatedAt()
Run Code Online (Sandbox Code Playgroud)

似乎给了UTC / GMT时间

$order->getCreatedAtStoreDate()
Run Code Online (Sandbox Code Playgroud)

给与我在前端看到的相同时间(即我的本地时区)。

如果我发现的内容正确,那么如何使用CreatedAtStoreDate addAttributeToFilter。我试过了

('created_at_store_date', array('from' => $userdate)
Run Code Online (Sandbox Code Playgroud)

ben*_*rks 4

<?php

ini_set('display_errors',true);
include 'app/Mage.php';
Mage::getIsDeveloperMode(true);
Mage::app();

$formatStr = 'Y-m-d H:i:s';
$startStr  = 'Yesterday 12:00:00AM';
$endStr    = 'Yesterday 11:59:59PM';

$date   = Mage::getSingleton('core/date');
/* @var $date Mage_Core_Model_Date */

$collection = Mage::getResourceModel('sales/order_collection');

$collection->getSelect()
            ->where(
                sprintf("created_at BETWEEN '%s' AND '%s'",
                    $date->gmtDate($formatStr,$startStr),
                    $date->gmtDate($formatStr,$endStr)
                )
            );

$collection->load(true);
Run Code Online (Sandbox Code Playgroud)