如何加载一天(24小时)的销售收集?

时间:2014-11-17 05:23:33

标签: php magento

我正在使用以下代码来获取单日的销售数据,我应该在往返时间中传入和传出变量? 使用的日期格式为11/15/14(mm / dd / yy)

我过了00:00:00,但这是午夜。

$to_date = date('Y-m-d' . ' 00:00:00', strtotime($to));
$from_date = date('Y-m-d' . ' 00:00:00', strtotime($from));

    $orders = Mage::getModel("sales/order")->getCollection()
                             ->addFieldToFilter('created_at', array('from'=>$from_date, 'to'=>$to_date));

5 个答案:

答案 0 :(得分:1)

我在本地主机上试过这个并且它工作正常,您可以根据需要调整过滤器   

require_once('app/Mage.php'); //Path to Magento
umask(0);
Mage::app();

$time = time();
$to = date('Y-m-d H:i:s', $time); echo '<br>';
$lastTime = $time - 86400; // 60*60*24
$from = date('Y-m-d H:i:s', $lastTime);


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


//echo $orders->getSelect();
echo '<pre>';

$_totalData = $orders->getData();
//echo $_grand = $_totalData['0']['grand_total'];

//print_r($_totalData);

foreach ($_totalData as $data) {
    $total_sale[] = $data['grand_total'];
}

print_r($total_sale);

如果您有任何疑问,请在此发表评论。

答案 1 :(得分:0)

为什么不使用24小时时间跨度格式的当前日期并使用当天0到24小时之间的限制

答案 2 :(得分:0)

我想你想要获得单日记录,所以只需要一天作为输入。请参阅以下代码:

$inputDay = "17-11-2014";
$from_date = date('Y-m-d H:i:s', strtotime("$inputDay 00:00:00"));
$to_date = date('Y-m-d H:i:s', strtotime("$inputDay 23:59:59"));
$orders = Mage::getModel("sales/order")->getCollection()
                         ->addFieldToFilter('created_at', array('gteq' => $from_date))
                         ->addFieldToFilter('created_at', array('lteq' => $to_date));

我过了一天,简单地计算开始时间和结束时间!

答案 3 :(得分:0)

您必须更改数据格式才能实现24小时

  $inputDay = "11/13/14"; // your current format for data is mm/dd/yy
$inputDay = date("Y-m-d", strtotime($inputDay)); 

$to_date = date('Y-m-d', strtotime($inputDay)).' 23:59:59';
$from_date = date('Y-m-d', strtotime($inputDay)).' 00:00:00';

// Now data is become Y-m-d h:i:s
 $orders = Mage::getModel("sales/order")->getCollection()
             ->addFieldToFilter('created_at', array('from'=>$from_date, 'to'=>$to_date));


  echo $orders->getSize();
    exit;

希望这对您有用。

答案 4 :(得分:0)

我使用了以下代码

$to_date = date('Y-m-d' . ' 23:59:00', strtotime($to));
$from_date = date('Y-m-d' . ' 00:00:00', strtotime($from));    

$orders = Mage::getModel("sales/order")->getCollection()
                       ->addFieldToFilter('created_at', array('from'=>$from_date, 'to'=>$to_date));