Я хочу отобразить все записи за период с августа текущего года по декабрь текущего года. Хотя он не будет отображаться с января по июнь, вместо этого будут отображаться записи с января по июнь.
Как я поймаю дату, используя утверждение 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
}
Я хотел автоматически отобразить записи текущего семестра (август-декабрь), и когда наступит январь, он будет скрывать записи, но будет отображать записи второго семестра, который является период с января по июнь.
Вы можете отфильтровать результаты sql с помощью оператораween. Что-то вроде
$ query = «select * from db_table где datefield BETWEEN $ startdate и $ enddate: порядок по datefield asc;
Таким образом, ваши результаты всегда будут попадать в диапазон и сортируются для загрузки
Я думаю, в базе данных у меня есть поле, чтобы сэкономить драгоценное время
$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 . "'";