首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PHP中从Excel表格中获取带格式的日期单元格

在PHP中从Excel表格中获取带格式的日期单元格
EN

Stack Overflow用户
提问于 2015-04-04 20:21:17
回答 2查看 417关注 0票数 0

我使用excel Reader读取Excel工作表,但现在无法显示单元格信息,因为它是带格式的单元格。它是一个数据单元格。

在php中,我如何在excel表格中显示日期?

在Excel中,单元格如下所示:10-Apr-1956 (Date formatted)

在php中,它现在显示如下:20555 (the general form)

如何在php中以日期的形式显示?

EN

回答 2

Stack Overflow用户

发布于 2015-04-04 20:40:25

20555是日期的Excel表示形式。它不是一种通用格式,类似于unix时间戳。我把它理解为自1900年1月1日以来的天数。

因此,您需要有一个函数来转换它。我认为下面这样的方法是可行的:

代码语言:javascript
复制
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对象。

票数 0
EN

Stack Overflow用户

发布于 2016-07-01 19:17:33

Excel将日期和时间存储为表示自1900年1月0日以来的天数的数字,其中包含24小时一天的小数部分。

至于解决方案,您可以使用以下代码片段,

代码语言:javascript
复制
$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);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29446349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档