我在php中的日期格式如下:
Fri May 01 2015 17:25:00 GMT +0100 (GMT Daylight Time)
我试图将它与mysql DATETIME字段进行比较:
$date1 = DateTime::createFromFormat("Y-m-d H:i:s e+", $start);
$sql = "SELECT * FROM ax_timestamps WHERE $date1 < datetimefeild ORDER BY id ASC";
但是当它执行时,它返回0结果,即使基于输入和数据库中的元素,它应该拉取结果。
datetimefeild feild中的数据示例:
2015-05-16 07:44:56
日期通过jQuery datepicker的ajax帖子传递给php,其设置如下:
$("#datepicker").datepicker({ dateFormat: 'yy-mm-dd' });
var start = $.datepicker.parseDate("yy-mm-dd", $('#datepicker').val());
答案 0 :(得分:0)
您传递的日期格式错误(作为字符串)。您应该首先使用str_to_date()函数将其转换为where子句中的datetime类型。
示例:
echo json_encode($rows, JSON_NUMERIC_CHECK);
应用它,您的$ sql字符串将变为:
SELECT str_to_date('2015-05-01 08:00:00', '%Y-%m-%d %h:%i:%s')
编辑:这也有效:
$sql = "SELECT * FROM ax_timestamps WHERE datetimefeild < str_to_date('".$date1."', '%Y-%m-%d %h:%i:%s') ORDER BY id ASC";
答案 1 :(得分:0)
我认为
Fri May 01 2015 17:25:00 GMT +0100 (GMT Daylight Time)
不是有效的日期/时间格式。你只需要
Fri May 01 2015 17:25:00 GMT +0100
所以你可以这样做
$date1 = new DateTime(substr($start, 0, -20));
和
$sql = "SELECT * FROM ax_timestamps WHERE {$date1->format('Y-m-d H:i:s')} < datetimefeild ORDER BY id ASC";