如何获得两个日期之间的所有产品?
问题描述:
如何获得像上个月的产品两个日期之间的所有产品,这个月的产品,上周产品,本周产品等如何获得两个日期之间的所有产品?
我试着用这样的:
// 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获取完整列表
答
有一个问题与您的代码:?!
$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。 我希望它会有帮助!
感谢丹尼尔:) – atif 2012-04-17 13:01:10