在我的数据库中,我有日期字段,其标准日期时间用于MySQL (YYYY-MM-DD HH:MM:SS)。通过AJAX请求我得到这个时间: DD / MM / YYYY
这是我用来搜索DB的函数:
$this->db->get_where('tvprogram', array('DATE(date)' => $date))->result_array();
目前此功能未获取任何数据。这里看起来有什么不对?如何搜索并查找特定日期的所有条目?
答案 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格式。
为了解决美国/欧洲日期模糊问题,我只需在字符串到时间转换之前用“ - ”替换“/”。