如何在PHP中比较MySQL日期时间和JqueryUI日期选择器


How to compare MySQL datetime and JqueryUI datepicker in PHP?

我有SQL语句,它需要比较数据库中的日期时间和客户端的JqueryUI日期选择器值。这就是我迄今为止所尝试的:

<script>   
    $(function() {
         $( "#calendar" ).datepicker({
             maxDate: "+0m +0w"
         });  
    });
</script>

$date = $_POST['calendar'];
$SQL = "SELECT  $table.item, $table.price, paying_$table.date_bought"
            . " FROM $table"
            . " JOIN paying_$table"
            . " ON $table.id_$table = paying_$table.id_$table"
            . " JOIN users on users.id_user = paying_$table.id_user"
            . " WHERE paying_$table.id_user = '$id' "
            . " AND paying_$table.date_bought BETWEEN  $date AND NOW() ";
$result = $db->query($SQL); //etc etc...

$table是我从switch语句中得到的var,所以这部分的所有内容都是正确的。我怀疑是SQL的最后两行。当我试图转储该SQL语句时,NOW()函数不执行,它只返回字符串NOW(()。

mysql中的日期类型是datetime。感谢

尝试这种方式

$date = date( 'Y-m-d', strtotime($_POST['calendar'] ) );

您可能正在比较不同格式的日期。根据您的评论,您的格式看起来像m/d/Y,而MySQL的DATETIME字段是Y-m-d H:i:s(如果您的字段只是DATE,则只有Y-m-d

通过使用phpDateTime原生类:,您可以通过mysql轻松地预先格式化日期以匹配所需的格式

$date = DateTime::createFromFormat('m-d-Y', $_POST['calendar'])->format('Y-m-d')

此外,在查询中引用$date变量:

. " AND paying_$table.date_bought BETWEEN  '$date' AND NOW() ";

您检查过$date变量的格式吗?MySQL的DATETIME默认格式为yyyy-mm-dd hh:mm:ss