为什么PHP Excel阅读器从CSV多输出一天


Why PHP Excel reader output one more day from CSV?

我正在使用excel/reader.php来读取CSV文件并获取数据。

CSV 中的日期字段的值为:20/10/2014

Customer Name    Date
Lorem Spem       20/10/14

当我使用 PHP 阅读 CSV 后打印它时:

        $file_name = $_FILES['file']['tmp_name'];
        $library_path = getcwd().'/application/libraries/excel/reader.php';
        require_once $library_path;
        $excel = new Spreadsheet_Excel_Reader();
        $excel->setOutputEncoding('CP1251');
        $status = $excel->read($file_name);
        $totalSheets = count($excel->sheets);
        for($sheetCount = 0 ; $sheetCount < $totalSheets ; $sheetCount++)
        {
            $excel_data = $excel->sheets[$sheetCount]['cells'];
            $totalRows = $excel->sheets[$sheetCount]['numRows'];
            print_r($excel_data);
        }

它给出的结果是:21/10/2014

Array ( [1] => Lorem Spem [2] => 21/10/2014 )

我不知道为什么它会在 CSV 的日期上增加一天。

我发现代码是正确的:它仅在本地主机上的Excel工作表中为日期添加了一天。

当我将此代码上传到实时服务器时,它给出了正确的日期。

我认为这又是时区问题。由于我尝试读取的CSV是在加拿大时区制作的,并且我尝试在印度时区读取,因此显示了日期错误。

但是当我将代码上传到加拿大的实时服务器时,它开始从Excel工作表中给出正确的日期。