我正在尝试从特定用户输入日期获取magento中的所有订单。
$orders = Mage::getModel('sales/order')->getCollection()->addAttributeToFilter('created_at', array('from' => $userdate));
但它没有提出正确的命令。如果我使用今天的日期,它会从昨天起减少一半,从今天起减半。
经过一段谷歌搜索后,看起来Magento中存储了两个日期
$order->getCreatedAt()
似乎给出UTC / GMT时间
$order->getCreatedAtStoreDate()
给出我在前端看到的同一时间(即我当地的时区)。
如果我找到了正确的内容,那么如何使用CreatedAtStoreDate添加AddAttributeToFilter。我试过了
('created_at_store_date', array('from' => $userdate)
答案 0 :(得分: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);