2012-04-16 9 views
5

làm thế nào để có được tất cả các sản phẩm giữa hai ngày như sản phẩm vào tháng trước, các sản phẩm trong tháng này, các sản phẩm vào tuần trước và các sản phẩm tuần này vvcách nhận tất cả các sản phẩm giữa hai ngày?

tôi đã cố gắng với điều này:

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


} 

nhưng tôi không thể có được kết quả :(bất kỳ sự giúp đỡ

Modified sau khi Daniel phản ứng

Trả lời

10

tôi đã cố gắng mã của bạn và phải trao đổi 'lteq''gteq' để làm cho nó làm việc. Số $fromdate là số thấp hơn, do đó bạn đang tìm kiếm ngày lớn hơn số số đó.

Ngoài ra, bạn phải nhớ định dạng ngày tháng mà MySQL thích; date('Y-m-d').

PS. Xem comparison operators để có danh sách đầy đủ

+0

bó cảm ơn Daniel :) – atif

1

có một vấn đề với mã của bạn:?!

$collection->addFieldToFilter() 

nên là:

$collection->addAttributeToFilter() 
15

1) Trước hết, bạn cần thay đổi ngày tháng từ 'YYYY-MM-DD' thành 'Y-m-d'. Điều này sẽ trả về một ngày định dạng mà các bản ghi magento có.

2) Có điều kiện đặc biệt cho ngày như được đề cập dưới đây với ví dụ của bạn.

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

To.

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

Tôi biết rằng câu hỏi là ít tuổi nhưng vì nó khá tốt được xếp hạng trong kết quả công cụ tìm kiếm, tôi sẽ sửa chức năng ngày() rằng tốt hơn mất như các đối số cái gì đó như: Ymd H: i: s. Tôi hy vọng nó sẽ giúp bạn!