2016-05-23 45 views
0

我有以下各列的CSV文件:修剪在PHP csv文件基於開始日期和結束日期

日期,時間,INFO1,信息2,信息3,信息4,信息5,

文件可以是1000線長或只是有3條線。每隔15秒用上面的列創建一個新行。但是,只有當分歧發生時。

用戶應該修剪CSV文件到特定的開始和結束日期/時間,他已經從一個日曆或dropdownboxes choosen。所以我們假設從2016年3月3日10點至2016年5月7日17:30。

這可能與csv文件? 我知道你可以用fgetcsv,fopen和fwrite讀取和寫入csv。 但如何獲得日期範圍內的具體行..我不知道。

有人能指出我正確的方向嗎? 任何幫助或建議表示讚賞:-)

+0

你嘗試的東西嗎?請張貼一些代碼,以便我們可以調試和/或幫助您 – rsz

回答

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()來自How to check if a date is in a given range?發表@ConroyP

相關問題