5

特定のユーザーが入力した日付から、magento ですべての注文を取得しようとしています。

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

しかし、それは正しい注文を引き出していません。今日の日付を使用すると、注文は昨日から半分、今日から半分になります。

少しグーグルした後、Magentoに2つの日付が保存されているようです

$order->getCreatedAt()

UTC / GMT時間を提供しているようです

$order->getCreatedAtStoreDate()

フロントエンドで表示されるのと同じ時間を提供します(つまり、ローカルタイムゾーン)。

私が見つけたものが正しければ、CreatedAtStoreDateを使用してAttributeToFilterを追加するにはどうすればよいですか。私が試してみました

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

1 に答える 1

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);
于 2012-10-10T12:01:48.603 に答える