在我的数据库中,我有一个带有MySQL (YYYY-MM-DD HH:MM:SS)标准日期时间的日期字段。这次我收到了通过 AJAX 请求:DD/MM/YYYY
这是我编写的用于搜索槽 DB 的函数:
$this->db->get_where('tvprogram', array('DATE(date)' => $date))->result_array();
目前这个函数没有得到任何数据。这里似乎有什么问题?如何搜索和查找特定日期的所有条目?
在我的数据库中,我有一个带有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 = 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 格式。
为了解决美国/欧洲日期的歧义,我只需在字符串到时间的转换之前将“/”替换为“-”。