摘要:[PHP] PHP Excel 讀取時間,時間異常解決
很久沒留紀錄了,最近又再次碰到 PHP EXCEL。
曾經讀取資料的時候,有發現讀取 EXCEL 欄位為時間格式的時候,透過 PHP 的內建 Date() 函式,造成日期或時間跑掉的問題,
紀錄一下解決的方法 範例如下:
$defTimeZone = date_default_timezone_get( );
date_default_timezone_set( 'UTC' );
$f[$returnArr['title'][$key]] = date( 'm-d-Y', PHPExcel_Shared_Date::ExcelToPHP( $value ) );
date_default_timezone_set( $defTimeZone );
發生狀況原因為 使用了 內建 Date() 函式後,將會去讀取 伺服器上所設定的 時區,如果是台北之類的還好,但萬一是GMT為前一日的話呢....呵呵…
就會造成 EXCEL 欄位中明明是 2013/05/24,透過PHPEXCEL讀取出來卻變成 2013/05/23 的問題。
所以解決方法就是在讀取之前,將PHP 時區 設定為 UTC,讀取出來後,在立刻改回去就可以解決這問題囉!!~