Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Magento订单在错误的日期创建_Magento_Date_Orders - Fatal编程技术网

Magento订单在错误的日期创建

Magento订单在错误的日期创建,magento,date,orders,Magento,Date,Orders,我正在尝试从特定用户输入的日期获取magento中的所有订单 $orders = Mage::getModel('sales/order')->getCollection()->addAttributeToFilter('created_at', array('from' => $userdate)); 但这不是正确的命令。如果我使用今天的日期,它会从昨天提取一半订单,从今天提取一半订单 在谷歌搜索了一下之后,Magento中似乎存储了两个日期 $order->getC

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

$orders = Mage::getModel('sales/order')->getCollection()->addAttributeToFilter('created_at', array('from' => $userdate));
但这不是正确的命令。如果我使用今天的日期,它会从昨天提取一半订单,从今天提取一半订单

在谷歌搜索了一下之后,Magento中似乎存储了两个日期

$order->getCreatedAt()
似乎给出了UTC/GMT时间

$order->getCreatedAtStoreDate()
与我在前端看到的时间相同(即我的本地时区)

如果我的发现是正确的,那么如何使用CreatedAtStoreDate添加AttributeToFilter。我试过了

('created_at_store_date', array('from' => $userdate)

是否建议发送查询(但不是完全发送)而不是使用ORM?只是好奇而已。+1我的from,to range on addAttributeToFilter没有获取正确数量的订单,这解决了问题。谢谢
<?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);