Codeigniter 2.1,MySQL - 按日期搜索

时间:2013-03-15 16:53:15

标签: php mysql codeigniter codeigniter-2

在我的数据库中,我有日期字段,其标准日期时间用于MySQL (YYYY-MM-DD HH:MM:SS)。通过AJAX请求我得到这个时间: DD / MM / YYYY

这是我用来搜索DB的函数:

$this->db->get_where('tvprogram', array('DATE(date)' => $date))->result_array();

目前此功能未获取任何数据。这里看起来有什么不对?如何搜索并查找特定日期的所有条目?

3 个答案:

答案 0 :(得分:3)

使用strtotime功能将日期转换为正确的格式:

 $date = date('Y-m-d', strtotime($date));
 $this->db->get_where('tvprogram', array('DATE(date)' => $date))->result_array();

答案 1 :(得分:0)

请以数据库格式转换第一个发布日期,并在搜索字段中使用日期功能,如下所示。

$date = date('Y-m-d', strtotime($search));
$this->db->where('DATE(created)',$date);

答案 2 :(得分:-1)

检查来自DATE(date)的格式,因为它可能与YYYY-MM-DD相似,并且比较总是会失败。

进入phpMyAdmin或类似地方并尝试SELECT DATE(now())并仔细检查日期格式。

如果$date的格式类似DD/MM/YYY,那么您可以使用以下方式重新格式化:

$date=date('Y-m-d',strtotime(strtr($date,"/","-")));

从PHP手册(http://www.php.net/manual/en/function.strtotime.php):

  

通过查看各个组件之间的分隔符来消除m / d / y或d-m-y格式的日期:如果分隔符是斜杠(/),则假设为美国m / d / y;而如果分隔符是破折号( - )或点(。),则假定为欧洲d-m-y格式。

为了解决美国/欧洲日期模糊问题,我只需在字符串到时间转换之前用“ - ”替换“/”。