【发布时间】:2018-06-08 02:41:03
【问题描述】:
我正在使用 PHPExcel 并尝试从单元格中获取日期值,但由于某种原因,它们给了我错误的日期。
$dt_column = $obj_sheet->getCell('A1');
$unix_date = PHPExcel_Shared_Date::ExcelToPHP($dt_column);
$date = gmdate('Y-m-d 00:00:00', $unix_date);
文件为 .xlsx 格式。 LibreOffice Calc中单元格的值显示为1/7/2017,(公式输入为01/07/2017,不知道在PHPExcel日期处理是否有实际区别)。
$dt_column 的返回值是 42917。
$unix_date 的价值是-2208988800。
$date 的价值是 2036-02-07 00:00:00。
我尝试使用公式 UNIX_DATE = (EXCEL_DATE - 25569) * 86400 手动将 Excel 日期值转换为 Unix 日期值,正如您想象的那样,结果相同。
PHPExcel_Shared_Date::$_excelBaseDate 设置为CALENDAR_WINDOWS_1900。
我怎样才能得到正确的日期?
已回答
【问题讨论】:
-
$obj_sheet->getCell('A1');返回A1处的 Cell 对象,其中包含有关单元格的大量信息,包括格式和样式。如果你想要一个单元格的值,那么你需要使用$obj_sheet->getCell('A1')->getValue(); -
操作,谢谢。我试图让它工作几个小时。
标签: php excel date unix phpexcel