将完整的 Excel 日期序列格式转换为 Unix 时间戳

2022-08-30 23:53:16

我看到很多关于转换Excel串行日期格式的“日期”部分的引用,但每个人似乎都跳过了它的“时间”部分。

以下是我需要做的:

我有一个要导入的 Excel 文件。PHP 正在使用中。

我遇到了Excel Date Serial格式(dddddd.tttttt),需要将其转换为整个Unix时间戳。

我已经尝试了几种不同的方法,但是我一直在思考如何以流畅的运动来做到这一点。


答案 1

请使用此公式从Excel日期更改为Unix日期,然后您可以使用“gmdate”在PHP中获取真实日期:

UNIX_DATE = (EXCEL_DATE - 25569) * 86400

要从 Unix 日期转换为 Excel 日期,请使用以下公式:

EXCEL_DATE = 25569 + (UNIX_DATE / 86400)

将此公式转换为变量后,您可以使用此示例在PHP中获取实际日期:

$UNIX_DATE = ($EXCEL_DATE - 25569) * 86400;
echo gmdate("d-m-Y H:i:s", $UNIX_DATE);

谢谢。


答案 2

这个oneliner对我有用,当然使用PHPExcel。

$date_formated = date('Y-m-d', PHPExcel_Shared_Date::ExcelToPHP($date_int_val));

推荐