PHP MySQL запрос показывает текущую дату таблицы по дате до 1 месяца

0

Я создам систему уведомлений с уведомлением за 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;
    }

Примечание. Извините, мой английский плохой. Спасибо.

  • 0
    Я предполагаю, что deadline 2018-01-13 для Dika неверен в вашем ожидаемом результате?
  • 0
    Ой, прости, я имею в виду | 03 | Дика | 2018-02-13
Теги:
codeigniter
date

1 ответ

0
Лучший ответ

Предполагая, что крайний срок - тип даты. Вместо 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))

Ещё вопросы

Сообщество Overcoder
Наверх
Меню