2011-09-19 155 views
1

我试图用这个类来导入大量的数据。大部分数据正在被正确读取,但我有两个日期列给我的问题。用PHP Excel Reader导入excel文件

日期格式为DD/MM/YYYY,并且返回的值比电子表格中的值早一天。例如,04/03/2011 00:00成为04/03/2011 02:00

我试图访问这样的数据:

$data->sheets[$sheet]['cells'][$row][$col]; 

我一直在使用的原始数据也试过:

$data->sheets[$sheet]['cellsInfo'][$row][$col]['raw'] 

它返回的日期为Unix时间戳但它仍然是一天前的事情。

有什么办法可以强制类返回列的值作为一个简单的字符串?

+0

这个班从哪里来?提供一个链接?这个名字可能有许多不同的产品。 –

+0

你确定你正在阅读正确的行/列吗? –

+0

我遇到了同样的问题。 Linke to PHPExcel阅读器: https://phpexcel.codeplex.com/ 我怀疑Excel录制日期的方式。电子表格在美国生成,IT操作在澳大利亚(我在这里),不知道这是否与之相关 – elzaer

回答

1


解决方法很简单 - 您为什么不直接从时间戳或从您提取的日期中扣除一天?

$wrongDateTimestamp = "1304398800"; 

$rightDateTimestamp = strtotime("-1 day", $wrongDateTimeStamp); // Or alternatively - $wrongDateTimeStam - 86400 
$rightDate = date("d/m/Y", $rightDateTimestamp); 

希望这会有所帮助。
Shai。

+0

虽然这个“有效”,但我认为理解为什么所有日期都记录为一天前的日期在Excel中)会更好,就好像它不会在你改变过程结果的一天中一直出现一样 – elzaer