为什么 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 sheet 开始的日期中添加了一天。
当我将此代码上传到实时服务器时,它给出了正确的日期。
我认为这又是时区问题。由于我尝试读取的CSV是在加拿大时区制作的,而我尝试在印度时区读取,所以显示日期错误。
但是当我将代码上传到加拿大的实时服务器时,它开始给出来自 Excel Sheet 的正确日期。
我正在使用 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 sheet 开始的日期中添加了一天。
当我将此代码上传到实时服务器时,它给出了正确的日期。
我认为这又是时区问题。由于我尝试读取的CSV是在加拿大时区制作的,而我尝试在印度时区读取,所以显示日期错误。
但是当我将代码上传到加拿大的实时服务器时,它开始给出来自 Excel Sheet 的正确日期。