我正在使用php-excel-reader在我的php脚本中读取XLS文件,除了阅读日期外,一切正常。它只返回一个未定义的对象。
几个问题:
答案 0 :(得分:14)
根据excel格式41397 is 2013-05-03
Excel将日期和时间存储为表示数字的数字 自1900年1月1日以来的几天,加上24小时工作日的一小部分:
ddddd.tttttt。这称为序列日期或序列日期时间。
您可以使用以下代码将号码转换为有效日期
function excelDateToDate($readDate){
$phpexcepDate = $readDate-25569; //to offset to Unix epoch
return strtotime("+$phpexcepDate days", mktime(0,0,0,1,1,1970));
}
php-excel-reader
应该这样做,但不知道它为什么不这样做。
您可以获得有关excel如何存储日期here的更多信息(不是像msdn这样的真实参考)
编辑:
检查PHPExcel,看起来像静态函数PHPExcel_Shared_Date::ExcelToPHP($dateValue = 0, $adjustToTimezone = FALSE, $timezone = NULL)
这样做。
答案 1 :(得分:1)
一种简单的方法......
<?php
$date = date_create('30-12-1899');
date_add($date, date_interval_create_from_date_string('41397 days'));
echo date_format($date, 'Y-m-d');
?>