Показать все результаты только за этот месяц - 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
Другие вопросы по тегам