Я создам систему уведомлений с уведомлением за 1 месяц до истечения срока. У меня проблема с отображением даты, которая совпадает с текущей датой. Я хочу показать, что сегодня появляется только дата с даты окончания срока до 1 месяца.
Моя вкладка = notif:
+------+------------+------------+
| id | name | deadline |
+------+------------+------------+
| 01 | Daniel | 2018-02-13 |
| 02 | Elwin | 2018-02-12 |
| 03 | Dika | 2018-02-13 |
+------+------------+------------+
Например: date today = 2018-01-13
отчет таблицы, что я хочу:
+------+------------+------------+------------+
| id | name | deadline | alert_now |
+------+------------+------------+------------+
| 01 | Daniel | 2018-02-13 | 2018-01-13 |
| 03 | Dika | 2018-02-13 | 2018-01-13 |
+------+------------+------------+------------+
Мой запрос в модели codeigniter:
public function notification(){
$query=$this->db->query('SELECT *, DATE_SUB(deadline, INTERVAL 1 MONTH) as alert_now FROM notif WHERE now() = DATE_SUB(deadline, INTERVAL 1 MONTH)');
return $result=$query;
}
Примечание. Извините, мой английский плохой. Спасибо.
Предполагая, что крайний срок - тип даты. Вместо now() (date time) вы должны использовать curdate() (date)
public function notification(){
$query=$this->db->query('SELECT *, DATE_SUB(deadline, INTERVAL 1 MONTH) as alert_now
FROM notif WHERE curdate() = DATE_SUB(deadline, INTERVAL 1 MONTH)');
return $result=$query;
}
если крайний срок равен дате, то вы должны получить дату parte, например:
date(DATE_SUB(deadline, INTERVAL 1 MONTH))
deadline
2018-01-13
дляDika
неверен в вашем ожидаемом результате?