繁体   English   中英

Codeigniter 2.1,MySQL - 按日期搜索

[英]Codeigniter 2.1, MySQL - search by date

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

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

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

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

使用strtotime函数将日期转换为正确的格式:

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

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

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

检查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或dmy格式的日期:如果分隔符是斜杠(/),则假设为美国m / d / y; 而如果分隔符是破折号( - )或点(。),则假定为欧洲dmy格式。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM