FOREACH with a DATE COMPARE condition (PHP) FOREACH with a DATE COMPARE condition (PHP) json json

FOREACH with a DATE COMPARE condition (PHP)


This function iterates through the events data, looking for events whose from and to dates surround the given date:

function find_events($events, $date) {    $date = new DateTime($date);    foreach ($events as $event) {        $from = (new DateTime($event['timeFrom']))->setTime(0,0,0);        $to = (new DateTime($event['timeTo']))->setTime(0,0,0);        if ($date >= $from && $date <= $to) {            echo "{$event['title']} ({$event['listText']}) from {$event['timeFrom']} to {$event['timeTo']}\n";        }    }}$events = json_decode($json, true);find_events($events, '2019-11-17');

Output:

event 1 (text of the event) from 2019-11-16 19:00:00 to 2019-11-18 22:00:00 event 3 (text of the event) from 2019-11-17 19:00:00 to 2019-11-17 22:00:00

Demo on 3v4l.org


Try this code:

$date = "2019-11-17";$events = json_decode($json_output, true);foreach ($events as $event){    if (($date > $event['timeFrom'] && $date < $event['timeTo']) || in_array($date, array($event['timeFrom'], $event['timeTo'])))    {        $filtered_events[] = $event;    }}$sliced_events = array_slice($filtered_events, 0, 9);print_r($sliced_events);