0

我有一个显示产品的简单脚本。在我的数据库中,我将两者都存储为产品表date_postedend_date的字段。在我的主页上,我展示了 20 个最近发布的产品。

我想展示还有 1 天或更长时间的产品。到目前为止,我已经设法做到了这一点,但使用了前端脚本和 css,这不是最佳实践,因为如果其中一些产品已经结束,它不会显示 20 个产品。

以下是我拥有的脚本:

我的观点 =>

 <?php $i=0;?>
        <?php foreach($product as $p): ?> 
        <?php 
    $startDate = date('m/d/Y');
    $endDate = $p['endDate'];
    $seconds_left = (strtotime($endDate) - strtotime($startDate));
    $days_left = floor($seconds_left / 3600 / 24);


     ?>
       <?php  $i+= 1; ?>

            <td <?php  //if($days_left<=0){echo "class='ended'";} ?>>
            <a href="<?php echo base_url()."user/product/".$p['productID']; ?>" class="product_name"><?php echo $p['productName']; ?>
            </a>
             <ul class="nav">
        <li><i class="icon-home"> </i> Location : <?php echo substr($p['location'],0,25); ?></li>
        <li><i class="icon-tags"> </i> Budget : Tshs <?php  echo number_format($p['Price']); ?></li>
        <li><i class="icon-tasks"> </i> <?php if($p['CategoryID']==4){echo"Number of rooms: ";}else echo "Quantity :"?> <?php echo $p['quantity']; ?></li> 
        <li><i class="icon-eye-open"> </i> Bids : <?php echo $p['Bids']; ?></li>
        <li><i class="icon-time"> </i> Days Left: <?php echo $days_left; ?></li>
      </ul>

            </td> 

我的模型=>

 function get_product($productID){
                               $this->db->select()->from('products')->where('productID',$productID);


                $query = $this->db->get();
                return $query->first_row('array');
            }
4

1 回答 1

1

您需要在 where 子句中获取日期。这样的事情应该可以解决问题:

function get_product($productID){
          $this->db->select()
             ->from('products')
             ->where('productID',$productID)
             ->where('end_date >=', date('Y-m-d H:i:s', strtotime('- 1 day')))
             ->limit(20);

          $query = $this->db->get();
          return $query->first_row('array');
}
于 2013-06-27T09:33:42.883 回答