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

vatpfxk5  于 2022-11-12  发布在  其他
关注(0)|答案(4)|浏览(107)

如何获取两个日期之间的所有产品,如上个月的产品、本月的产品、上周的产品和本周的产品等。
我试过这个:

// 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));

}

但是我无法得到结果:(有什么帮助吗?)

在丹尼尔回应后修改!

ocebsuys

ocebsuys1#

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,
        ));
b4lqfgs4

b4lqfgs42#

我试过你的代码,不得不交换'lteq''gteq'才能让它工作。$fromdate是较低的数字,所以你要搜索的日期 * 大于 * 这个数字。
此外,您必须记住按照MySQL喜欢的格式设置日期; date('Y-m-d') .
PS.请参阅comparison operators以获取完整列表

cgh8pdjw

cgh8pdjw3#

您的程式码有一个问题:

$collection->addFieldToFilter()

应为:

$collection->addAttributeToFilter()
nxagd54h

nxagd54h4#

我知道这个问题有点老了,但由于它在搜索引擎结果中排名很高,我将更正**date()**函数,使其更好地将以下内容作为参数:我希望这对你有帮助!

相关问题