根据开始日期和结束日期修剪php中的csv文件

时间:2016-05-23 13:08:16

标签: php arrays csv

我有一个包含以下列的csv文件:

日期,时间,信息1,信息2,信息3,信息4,信息5,

文件可以是1000行或只有3行。每隔15秒,使用上面的列创建一个新行。但只有在开启时才会出现。

用户应将csv文件修剪为他从日历或下拉框中选择的特定开始和结束日期/时间。让我们从2016年3月3日10:00到2016年5月7日17:30说。

是否可以使用csv文件? 我知道你可以用fgetcsv,fopen和fwrite读写csv。 但是如何在日期范围内获得特定的行...我不知道。

有人能指出我正确的方向吗? 任何帮助或建议表示赞赏: - )

1 个答案:

答案 0 :(得分:0)

<?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发布的How to check if a date is in a given range?