【问题标题】:Get a formatted date cell from Excel Sheet in PHP从 PHP 中的 Excel 工作表中获取格式化的日期单元格
【发布时间】:2015-04-04 12:21:16
【问题描述】:

我使用 Excel Reader 阅读了一个 Excel 表格,但现在我无法显示单元格信息,因为它是格式化的单元格。它是一个数据单元格。

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

在Excel中单元格是这样的:10-Apr-1956 (Date formatted)

现在在 php 中显示为:20555 (the general form)

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

【问题讨论】:

    标签: php excel


    【解决方案1】:

    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 对象。

    【讨论】:

      【解决方案2】:

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

      至于解决方案,您可以使用以下代码sn-p,

      $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);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-18
        相关资源
        最近更新 更多