PHP Spreadsheet_Excel_Reader始终读取日期为1999年11月30日

时间:2012-08-09 11:06:52

标签: php excel spreadsheet

我正在使用Spreadsheet_Excel_Reader在PHP中读取.xls文件。

在阅读约会之前,一切都很顺利。如果我正在阅读日期字段,它将始终返回日期为1999年11月30日(或此日期的变化取决于格式)。我已经尝试设置OutputEncoding,它给出了相同的结果。我尝试转储库附带的'example.xls',也产生相同的结果。

对于解决方法的任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

您不需要在Excel中格式化日期...如果您有一个日期格式,请用双引号将其换行。例如“13/04/1987”格式(“DD / MM / YYYY”);

Spreadsheet_Excel_Reader会将其读作普通字符串,并在其周围加上双引号包装。

然后在你的PHP中创建一个查询来删除并替换双引号。

$var = "13/04/1987";
 $removeQuote = str_replace('"','',$var);

在此之后,你必须用hypen( - )替换每个出现的前锋(/)。

$removeSlashes = str_replace('/','-',$removeQuote);

然后使用PHP中的日期函数将其格式化为适合您。

$format = date('Y-m-d', strtotime($removeSlashes));
echo $format;

你做完了......完整的代码在下面。

$var = "13/04/1987";
echo date('Y-m-d',strtotime(str_replace('/','-',str_replace('"','',$var))));