這是在我的電子表格: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