如何从CodeIgniter数据库中使用促销活动的开始日期和到期日期



我想从CodeIgniter数据库中获得promotionstart_dateexpire_date,以便促销自动出现在start_date上,并在expire_date之后消失。
我怎样才能做到这一点呢?

这是数据库的布局:

promotion:
id(primary,autmatic),
image(varchar,255),
description(longtext),
start_date(datetime),
expire_date(datetime),

内容示例如下:

id image description start_date expired_date
1  1.jpg textpromo1   1/10/2015 5/10/2015  
2  2.jpg textpromo2   8/10/2015 22/10/2015
2  3.jpg textpromo3   1/11/2015 12/11/2015

这是我在视图中的查询代码

<?php $query = $this->db->get('promotion'); ?>
<?php foreach($query->result() as $val): ?>
<div class="promotion">
<p><?php echo image; ?></p>
<p><?php echo description; ?></p>
<p><?php echo start_date; ?></p>
<p><?php echo expired_date; ?></p>
 </div>
<?php endforeach; ?>

结果是:

 1.jpg textpromo1   1/10/2015 5/10/2015  
  2.jpg textpromo2   8/10/2015 22/10/2015
  3.jpg textpromo3   1/11/2015 12/11/2015

根据讨论,您希望获取开始日期和到期日期之间的记录

SELECT * 
FROM promotion 
WHERE start_date <= '2015-10-23' AND expire_date >= '2015-10-23'

在codeigniter中这样做,

 <?php 
   $this->db->where('start_date <= ' , date('Y-m-d')); 
   $this->db->where('expired_date >= ' , date('Y-m-d')); 
 ?>

你可以把今天的日期在一些变量中使用。

使用如下条件

$this->db->where('start_date >= ' , date('Y-m-d'));
$this->db->where('expire_date <= ' , date('Y-m-d'));
$query = $this->db->get('promotion');

您可以在这里获得更多信息

https://ellislab.com/codeigniter/user-guide/database/active_record.html

最新更新