Как сравнить MySQL Datetime и JqueryUI DatePicker в PHP?

У меня есть SQL-оператор, который должен сравнивать datetime из БД и JqueryUI datepicker со стороны клиента. Это то, что я пробовал до сих пор:

<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, так что в этой части все правильно. На что я подозреваю последние 2 строчки SQL.
Когда я попытался сбросить этот оператор SQL, функция NOW () не выполняется, она просто возвращает строку NOW ().

Тип даты в MySQL является datetime.
Спасибо

0

Решение

Попробуй так

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

Другие решения

Скорее всего, вы сравниваете даты в разных форматах. Исходя из вашего комментария, ваш формат выглядит m/d/Yтогда как MySQL DATETIME поле Y-m-d H:i:s (только Y-m-d если ваше поле просто DATE)

Вы можете легко предварительно отформатировать вашу дату, чтобы соответствовать требуемому формату MySQL, используя php DateTime родной класс:

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

Кроме того, укажите в вашем запросе переменную $ date:

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

Вы проверили формат переменной $ date? MySQL DATETIME формат по умолчанию yyyy-mm-dd hh:mm:ss ,

0
По вопросам рекламы [email protected]