44956
在 Excel 中通常表示的是日期格式,它代表的是 1900 年 1 月 1 日到该日期的天数。要将这个数字转换为正常的日期格式,你需要将其转换为日期序列值。在 Excel 中,可以通过以下步骤来实现:
44956
这样的数字时,它实际上是 Excel 中的日期序列号,代表的日期是 2023 年 1 月 30 日。=DATE(1900,1,1)+44956-2这里的
-2
是因为 Excel 错误地将 1900 年 1 月 0 日当作了一天。
下面用 PHP 示例实现一个函数,将 44956 转换成日期格式,如返回:2023-01-30
<?php function excelSerialToDate($serial) { // Excel错误地将1900年1月0日作为序列号1的基准日期。 // 实际上,1900年1月1日是序列号2,因此我们需要减去2。 $dateTime = new DateTime('1900-01-01'); $interval = $dateTime->diff(new DateTime('1900-01-00')); $dateTime->modify($interval->format('%a') . ' days'); // 加上序列号天数 $dateTime->modify("+{$serial} days"); // 返回日期格式 YYYY-MM-DD return $dateTime->format('Y-m-d'); } // 使用函数 $serialNumber = 44956; $date = excelSerialToDate($serialNumber); echo $date; // 输出:2023-01-30