[英]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.