这是我的电子表格中的内容:
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 的错误,或者我错过了某个设置或其他内容,这是我在从单元格中提取日期序列之前需要执行的操作。可能是时区问题?
抱歉,我对 PHPExcel 库还不是很熟悉。
我对此不太确定,但是......
功能date() http://php.net/manual/en/function.date.php在 PHP 中取决于服务器的时区设置。
PHPExcel_Shared_Date::ExcelToPHP()假设提供的日期是 GMT 并相应地返回 Unix 时间。
因此,尝试在脚本开头为 PHP 时区设置 GMT/UTC(使用date_default_timezone_set() http://php.net/manual/en/function.date-default-timezone-set.php)
date_default_timezone_set('UTC');
或像这样(使用ini_set() http://php.net/manual/en/function.ini-set.php)
ini_set('date.timezone', 'UTC');
另外,尝试使用gmdate() http://php.net/manual/en/function.gmdate.php代替date() http://php.net/manual/en/function.date.php, 否则您可能会获得 1 天的补偿.
可用链接:
- http://phpexcel.codeplex.com/ http://phpexcel.codeplex.com/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)