如何解决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的错误,或者我错过了设置或某些东西,然后才需要从该单元中提取日期信息。可能是时区问题?
抱歉,我对PHPExcel库不是很熟悉。
解决方法
我对此不太确定,但是...
PHP中的date()函数取决于服务器的时区设置。
PHPExcel_Shared_Date :: ExcelToPHP()假定提供的日期为格林尼治标准时间,并相应地返回Unix时间。
因此,请尝试在脚本开头为PHP时区设置GMT / UTC(使用date_default_timezone_set())
date_default_timezone_set(\'UTC\');
或这样(使用ini_set())
ini_set(\'date.timezone\',\'UTC\');
另外,请尝试使用gmdate()代替date(),否则您可能会得到1天的补偿。
可用链接:
http://phpexcel.codeplex.com/
,限定
date_default_timezone_set(YOUR_TIME_ZONE);
更改此行:
date(\'Y-m-d H:i:s\',$txn_date)
至:
PHPExcel_Style_NumberFormat::toFormattedString($txn_date_xls,\'Y-m-d H:i:s\')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。