如何获得两个日期之间的所有产品?

问题描述:

如何获得像上个月的产品两个日期之间的所有产品,这个月的产品,上周产品,本周产品等如何获得两个日期之间的所有产品?

我试着用这样的:

// current day to start with 
$start = mktime(0,0,0,date('m'), date('d'), date('Y'));; 

// calculate the first day of last month 
$first = date('YYYY-MM-DD',mktime(0,0,0,date('m',$start) - 1,1,date('Y',$start))); 

// calculate the last day of last month 
$last = date('YYYY-MM-DD',mktime(0, 0, 0, date('m') -1 + 1, 0, date('Y',$start))); 



    if($filter == "lastmonth"){ 

    $collection = Mage::getModel('catalog/product')->getCollection(); 
    $collection->addAttributeToFilter('updated_at', array('gteq' =>$first)); 
    $collection->addAttributeToFilter('updated_at', array('lteq' => $last)); 


} 

,但我不能得到的结果:(任何帮助

丹尼尔响应后修改

我想你的代码,不得不换'lteq''gteq',使其工作。 $fromdate是较低的数字,因此您正在搜索日期大于那个数字。

另外你还必须记得格式化日期,因为MySQL喜欢它; date('Y-m-d')

PS。请参阅comparison operators获取完整列表

+0

感谢丹尼尔:) – atif 2012-04-17 13:01:10

有一个问题与您的代码:?!

$collection->addFieldToFilter() 

应该是:

$collection->addAttributeToFilter() 

1)首先,您需要将日期格式从'YYYY-MM-DD'更改为'Y-m-d'。这将返回magento记录所具有的日期格式。 2)在你的例子中有一个特殊的日期条件如下所示。

$collection = Mage::getModel('catalog/product')->getCollection(); 
$collection->addAttributeToFilter('updated_at', array('gteq' =>$first)); 
$collection->addAttributeToFilter('updated_at', array('lteq' => $last)); 

到。

$collection = Mage::getModel('catalog/product')->getCollection(); 
$collection->addAttributeToFilter('updated_at', array(
     'from' => $first, 
     'to' => $last, 
     'date' => true, 
     )); 

我知道这个问题是有点老,但因为它是在搜索引擎结果相当好排名,我会纠正日期()功能,更好地承担作为参数是这样的:YMD H:我:s。 我希望它会有帮助!