在php中阅读xls日期 [英] reading xls date in php

查看:92
本文介绍了在php中阅读xls日期的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用 php-excel-reader 阅读XLS文件在我的php脚本,一切都正常,除了阅读日期。它只是返回一个未定义的对象。

I'm using php-excel-reader to read an XLS file in my php script, everything is working fine, except for reading a date. It simply return an undefined object.


  • XLS文件不是在我的电脑上,我不知道与巫婆
    版本已创建。

  • 如果我打开我的电脑上的文件,并再次保存,一切都正常。 (但我显然宁愿避免这样做)

  • 在php-excel-reader脚本中进行一些挖掘后,我设法从XLS中获取提取的值。例如,41397而不是03/05/2013(d / m / y)

几个问题:


  • 是否可以修复?

  • 是否可以利用41397?这是一个已知的日期格式吗?

  • 是否有另一个xsl到php脚本,这将工作,而无需更改任何东西?

推荐答案

根据excel格式 41397是2013-05-03


Excel将日期和时间作为代表自1900年1月至0月的
天数的数字加上24小时的小数部分: >
ddddd.tttttt。这被称为序列日期或串行日期时间。

Excel stores dates and times as a number representing the number of days since 1900-Jan-0, plus a fractional portion of a 24 hour day:
ddddd.tttttt . This is called a serial date, or serial date-time.

您可以使用以下代码将该数字转换为有效日期

You can use the following code to convert the number to valid date

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 应该这样做,但不知道为什么不这样做。

php-excel-reader is supposed to do this, but don't know why it is not doing it.

您可以获得更多关于excel存储日期的信息这里(不是像msdn这样的真实参考书)

You can get more info about how excel stores date here (not an authentic reference like msdn)

编辑:
检查PHPExcel,看起来像静态函数 PHPExcel_Shared_Date :: ExcelToPHP($ dateValue = 0,$ adjustToTimezone = FALSE,$ timezone = NULL)这样做。

这篇关于在php中阅读xls日期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆