这是在我的电子表格:PHPExcel日期字段不匹配源电子表格
12/04/2011 8:56:17 p.m. (xls dateserial = 40645.87242)
这是我的代码,我使用提取的日期,并转换为日期字符串在PHP中:
$txn_date_xls = $sheet->getCell("H$row")->getValue();
echo "Txn Date (original): $txn_date_xls<br />";
$txn_date = PHPExcel_Shared_Date::ExcelToPHP($txn_date_xls);
echo "Txn Date: ".date('Y-m-d H:i:s', $txn_date)."<br />";
这是我的脚本输出:
Txn Date (original): 40644.55783637732
Txn Date: 2011-04-11 13:23:17
日期序列没有原来的电子表格相匹配。 因此,我试图确定这是PHPExcel的错误,还是我错过了一个设置或其他东西,我需要在从单元中提取dateserial之前执行此操作。可能是一个时区问题?
对不起,我还不是很熟悉PHPExcel库。
使用gmdate()确实有所帮助,但并未解决问题。 – bumperbox 2011-04-14 02:13:01
我保存了与xlsx文件相同的文件并将其导入(并使用了gmdate),它工作。所以也许它与文件格式有关? – bumperbox 2011-04-14 02:13:48
@ Wh1T3h4Ck5 - 如果有人告诉我虫子,那么我可能会解决它们......大部分我听到的都是“它不工作”。但是你是对的,PHPExcel将所有的Excel日期序列视为UTC时间戳。我不知道在.xls BIFF格式中有任何值可以识别时区偏移(只是Windows 1900/Mac 1904日历切换),而随后使用date()函数将返回的unix时间戳值到显示格式将调整为默认时区。 – 2011-04-14 08:38:54