在PHP中从Excel工作表获取格式化的日期单元格
我使用excel Reader阅读excel工作表,现在我无法显示单元格信息,因为它已格式化为单元格。它是一个数据单元 在php中,如何在excel工作表中显示日期 在Excel中,单元格格式如下:1956年4月10日日期 在php中,它现在显示为:20555一般形式 如何在php中以日期的形式显示?20555是日期的Excel表示形式。它不是一般形式,与unix时间戳类似。我知道这是1900年1月1日以来的天数 所以你需要一个函数来掩盖这个。我认为类似于以下的方法可以奏效:在PHP中从Excel工作表获取格式化的日期单元格,php,excel,Php,Excel,我使用excel Reader阅读excel工作表,现在我无法显示单元格信息,因为它已格式化为单元格。它是一个数据单元 在php中,如何在excel工作表中显示日期 在Excel中,单元格格式如下:1956年4月10日日期 在php中,它现在显示为:20555一般形式 如何在php中以日期的形式显示?20555是日期的Excel表示形式。它不是一般形式,与unix时间戳类似。我知道这是1900年1月1日以来的天数 所以你需要一个函数来掩盖这个。我认为类似于以下的方法可以奏效: function
function convertExcelDateNumberToUnixTimestamp($dateNumber){
/* Jan 1 1900 + [number of days in seconds] */
return -2208988800 + (24 * 60 * 60 * $dateNumber);
}
function formatExcelDateNumberToDate($dateNumber) {
/*Where 'l jS \of F Y' is whatever format you want:*/
return date('l jS \of F Y', convertExcelDateNumberToUnixTimestamp($dateNumber);
}
使用第一个函数,您可以使用响应构造DateTime对象 Excel将日期和时间存储为一个数字,表示自1900年1月0日以来的天数,其中包含24小时工作日的小数部分 至于解决方案,您可以使用以下代码段
$excel_date = 20555; // Serialized form of 10-Apr-1956
$processDate = $excel_date - 25569;
$dateVal = strtotime("+$processDate days", mktime(0,0,0,1,1,1970));
echo date('d M Y', $dateVal);