0

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

这是我编写的用于搜索槽 DB 的函数:

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

目前这个函数没有得到任何数据。这里似乎有什么问题?如何搜索和查找特定日期的所有条目?

4

3 回答 3

3

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

 $date = date('Y-m-d', strtotime($date));
 $this->db->get_where('tvprogram', array('DATE(date)' => $date))->result_array();
于 2013-03-15T17:13:52.050 回答
0

请将首次发布的日期转换为数据库格式,并在您的搜索字段中使用 Date 函数,如下所示。

$date = date('Y-m-d', strtotime($search));
$this->db->where('DATE(created)',$date);
于 2016-10-12T03:27:13.307 回答
-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 或 dmy 格式的日期通过查看各个组件之间的分隔符来消除歧义:如果分隔符是斜杠 (/),则假定为美式 m/d/y;而如果分隔符是破折号 (-) 或点 (.),则假定为欧洲 dmy 格式。

为了解决美国/欧洲日期的歧义,我只需在字符串到时间的转换之前将“/”替换为“-”。

于 2013-03-15T17:12:54.513 回答