Показать все результаты только за этот месяц - Unix
У меня есть несколько отметок времени UNIX, и я хочу отобразить все результаты за текущий месяц. Когда я отображаю результаты, на экране ничего нет.
public static function getArrayMonthly($date_month){
$currentDate = strtotime(date("Y-m-d", '1458086400'));
$date_month = date('m', $currentDate);
$sql = "SELECT * FROM events where date_start between $currentDate AND $date_month ORDER BY date_start ASC";
$result = DB::select($sql);
return($result);
}
1 ответ
Решение
В настоящее время вы сравниваете формат метки времени с номером месяца, поэтому он не может работать.
В настоящее время ваш запрос похож на:
SELECT * FROM events where date_start between 1458014400 AND 03 ORDER BY date_start ASC
Так что ваш date_month должен быть
$first_date_month = strtotime(date('Y-m-01 00:00:00', $currentDate));
$last_date_month = strtotime(date('Y-m-t 23:59:59', $currentDate));
Кроме того, между ними вы должны начать с более старой даты, так что это должно быть как
SELECT * FROM events where date_start between $first_date_month AND $last_date_month ORDER BY date_start ASC