Как показать записи, которые попадают в диапазон дат, используя оператор if

Я хочу отобразить все записи за период с августа текущего года по декабрь текущего года. Хотя он не будет отображаться с января по июнь, вместо этого будут отображаться записи с января по июнь.
Как я поймаю дату, используя утверждение IF?

Вот мой код:

            $year = date("Y");
$sem1_start = date("M-d-Y", strtotime("August, 01".$year));
$sem1_end = date("M-d-Y", strtotime("December, 31".$year));

$sem2_start = date("M-d-Y", strtotime("January, 01".$year));
$sem2_end = date("M-d-Y", strtotime("June, 15".$year));

//sample date from database
$date = '2015-10-15';
$date2 = date("M-d-Y", strtotime($date));


if($date2 >= $sem1_s && $date2 <= $sem1_e){
//Display all records
}
else if($date2 >= $sem2_s && $date2 <= $sem2_e){
//Display all records
}

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

0

Решение

Вы можете отфильтровать результаты sql с помощью оператораween. Что-то вроде

$ query = «select * from db_table где datefield BETWEEN $ startdate и $ enddate: порядок по datefield asc;

Таким образом, ваши результаты всегда будут попадать в диапазон и сортируются для загрузки

0

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

Я думаю, в базе данных у меня есть поле, чтобы сэкономить драгоценное время

$time = time();

Когда я хочу выполнить поиск с августа текущего года по 12 марта текущего года, я сделаю следующее

$timeSearchStart = strtotime(date('Y') . '-8-1 00:00:00');
$timeSearchEnd = strtotime(date('Y') . '-12-31 23:59:59');
$query = "SELECT * FROM `table` WHERE `fieldSaveTime` > '" . $timeSearchStart . "' && `fieldSaveTime` < '" . $timeSearchEnd  . "'";
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector