Я пытаюсь показать список напоминаний только с сегодняшней датой, и он показывает только что-либо с сегодняшним днем ​​и после сегодняшней даты.

Это то, что у меня есть до сих пор;

<?php
include '../../main.php';
check_loggedin($pdo);
$now = date("Y-m-d h:i:sa");
$stmt = $pdo->prepare('SELECT * FROM care_plan_review where reminder_date > ? order by id desc');
$stmt->execute([$now]);
$allReview = $stmt->fetchAll(PDO::FETCH_ASSOC);

// var_dump($now);
// exit();
?>
0
SirDongle 26 Ноя 2021 в 17:48
a в Y-m-d h:i:sa добавляют am или pm после времени, я не уверен, что MySQL справится с этим? В любом случае, у MySQL есть собственная функция NOW(), почему бы не использовать ее? Если вы не хотите этого делать, попробуйте: Y-m-d H:i:s. Какой тип у столбца reminder_date?
 – 
KIKO Software
26 Ноя 2021 в 17:51
Я удалил A из кода. Столбец для даты напоминания - «дата_поминания».
 – 
SirDongle
26 Ноя 2021 в 17:59
Обратите внимание, что для перехода от 12-часового формата к 24-часовому формату необходимо использовать заглавную букву h. Я спрашивал тип столбца reminder_date. Что-то вроде TEXT, VARCHAR или DATETIME.
 – 
KIKO Software
26 Ноя 2021 в 18:02

1 ответ

Лучший ответ

Чтобы показать, что записи относятся только к сегодняшнему дню, вы можете использовать следующий SQL-запрос.

SELECT * FROM care_plan_review where reminder_date = ? order by id desc

Вот модифицированный код,

<?php

include '../../main.php';
check_loggedin($pdo);
$now = date("Y-m-d"); // Use only date
$stmt = $pdo->prepare('SELECT * FROM care_plan_review where reminder_date = ? order by id desc');
$stmt->execute([$now]);
$allReview = $stmt->fetchAll(PDO::FETCH_ASSOC);

?>
1
Dimuthu Lakmal 26 Ноя 2021 в 18:01
1
Попасть туда. Я думаю, вам также нужно использовать DATE(reminder_date) в запросе, чтобы ограничить reminder_date, который, вероятно, также содержит время, датой.
 – 
KIKO Software
26 Ноя 2021 в 18:06
Дать согласие.
 – 
Dimuthu Lakmal
26 Ноя 2021 в 18:18
Спасибо за вашу помощь, вот и решено.
 – 
SirDongle
26 Ноя 2021 в 18:33