обрезка csv-файла в php на основе даты начала и даты окончания

У меня есть csv-файл со следующими столбцами:

дата, время, info1, info 2, info 3, info 4, info 5,

Файл может быть 1000 строк или просто иметь 3 строки. Каждые 15 секунд с вышеперечисленными столбцами создается новая строка. Но только когда devide включен.

Пользователь должен обрезать csv-файл до определенной даты начала и окончания/времени, которые он выбрал из календаря или раскрывающихся ящиков. скажем, с 3 марта 2016 года с 10: 00 до 7 мая 2016 года с 17:30.

возможно ли это с помощью csv-файла?
Я знаю, что вы можете читать и писать в csv с fgetcsv, fopen и fwrite.
Но как получить конкретные строки в диапазоне дат.. Понятия не имею.

Кто-нибудь может указать мне правильное направление?
Любая помощь или совет ценится 🙂

1 ответ

  1. <?php
        $file = '/path/to/file/csv';
        $separator = ';';
        $length = 2048;
        $newFile = [];
    
        $i  =   0;
        if(($handle = fopen($file, 'r')) !== false){
            while(($data = fgetcsv($handle, $length, $separator)) !== false) {
                if($i == 0){
                    $newFile[]  =   implode($separator, $data);
                    $i++;
                }else{
                    $fileDate   =   $data[0].' '.$data[1];
    
                    if(check_in_range('03-03-2016 10:00:00', '07-05-2016 17:30', $fileDate)){
                        $newFile[]  =   implode($separator, $data);
                    }
                }
            }
        }
    
        $newCsvFileData =   implode(PHP_EOL, $newFile);
    ?>
    

    Функция check_in_rage () исходит из того, как проверить, находится ли дата в заданном диапазоне? опубликовано @ConroyP