我使用excel Reader读取了excel工作表,现在我无法显示单元格信息,因为它是格式化的单元格。它是一个数据单元。
在php中,我如何在excel表中显示日期?
在Excel中,单元格类似于:10-Apr-1956 (Date formatted)
现在在php中显示为:20555 (the general form)
如何在php中以日期的形式显示?
20555
是日期的Excel表示形式。它不是一个通用的形式,类似于unix时间戳。据我所知,这是自1900年1月1日以来的天数。
所以你需要有一个可以隐藏这一点的函数。我认为以下内容可以起作用:
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-Jan-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);