PHP получает правильные записи базы данных на основе времени - PullRequest
0 голосов
/ 11 июня 2018

Пожалуйста, я пытаюсь получить свои задачи из базы данных с помощью переключателя, но я не получаю правильные записи, я использую Codeigniter

, это мой код:

switch(strtolower($this->input->post('tasksfilter'))){
    case "overdue":
        $query = array("task_accomplish_date <=" => time());
        break;
    case "today":
        $query = array("task_accomplish_date <=" => strtotime("today midnight"));
        break;
    case "tomorrow":
        $query = array("task_accomplish_date <=" => strtotime("tomorrow midnight"));
        break;
    }
$this->data['result'] = $this->crud->read_where("tasks", $query)->result();

это также моя read_where функция:

public function read_where($table, $cond, $limit = null, $offset = null){
        return $this->db->get_where($table, $cond, $limit, $offset);
    }

NB * task_accomplish_date - это поле varchar, содержащее timestamp значений, заранее спасибо за помощь

1 Ответ

0 голосов
/ 11 июня 2018

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

Если значение в столбце task_accomplish_date ВСЕГДА полночь рассматриваемого дня, тогда оператор равенстваможет быть использован.Если используется какое-то «время суток», отличное от полуночи, мне придется пересмотреть ответ.Следующее предполагает, что значение всегда полночь.

В этом ответе также предполагается, что вы хотите только «завтра», а не какие-либо последующие дни, то есть послезавтра.

$findDay = strtotime("today");
switch (strtolower($this->input->post('tasksfilter')))
{
    case "overdue":
        $findDay -=  86400; //subtract one days worth of seconds
        break;
    case "tomorrow":
        $findDay += 86400; //add a day to "today"
        break;
}
$query = array("task_accomplish_date == " => $findDay);
$this->data['result'] = $this->crud->read_where("tasks", $query)->result();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...