You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHPExcel读取xlsx文件:将DateStamp格式转换为标准日期

解决PHPExcel中Excel日期序列号转可读日期的问题

Hey there, I see you're working with PHPExcel to read an XLSX file and need to convert those Excel date serial numbers (like the 43160 in cell A1 that should become 01/03/2018) into human-readable dates. Good news—PHPExcel has built-in tools to handle this without you having to calculate the date offset manually!

核心思路

Excel 把日期存储为从1900年1月0日(旧版Mac系统为1904年1月1日)开始计数的序列号。PHPExcel 的 PHPExcel_Shared_Date 类提供了两个便捷方法,能把这些序列号转成可用的PHP日期格式:

  • ExcelToPHP():将序列号转换为Unix时间戳
  • ExcelToPHPObject():直接将序列号转换为PHP DateTime 对象(适合灵活格式化或复杂日期操作)

完整代码示例

下面是整合到你现有代码中的实现:

require '../PHPExcel-1.8/Classes/PHPExcel/IOFactory.php';
require '../cnx/conection.php';

// 加载Excel文件
$objPHPExcel = PHPExcel_IOFactory::load('../../date.xlsx');
$activeSheet = $objPHPExcel->setActiveSheetIndex(0);
$numRows = $activeSheet->getHighestRow();

// 引入日期处理类(如果自动加载未配置的话)
require_once '../PHPExcel-1.8/Classes/PHPExcel/Shared/Date.php';

// 从第2行开始循环(假设第1行是表头)
for ($i = 2; $i <= $numRows; $i++) {
    // 获取A列单元格的原始值(即类似43160的日期序列号)
    $excelDateSerial = $activeSheet->getCell('A' . $i)->getValue();
    
    // 先验证单元格是否包含有效的Excel日期
    if (PHPExcel_Shared_Date::isDateTime($activeSheet->getCell('A' . $i))) {
        // 方式1:转成时间戳后用date()格式化
        $unixTimestamp = PHPExcel_Shared_Date::ExcelToPHP($excelDateSerial);
        $formattedDate = date('d/m/Y', $unixTimestamp); // 输出01/03/2018
        
        // 方式2:转成DateTime对象,灵活性更高
        $dateObject = PHPExcel_Shared_Date::ExcelToPHPObject($excelDateSerial);
        $formattedDateFromObj = $dateObject->format('d/m/Y');
        
        // 这里替换成你的数据库插入或其他业务逻辑
        echo "第{$i}行:转换后的日期为 {$formattedDate}\n";
    } else {
        // 处理单元格不是有效日期的情况
        echo "第{$i}行:A列不是有效的Excel日期\n";
    }
}

关键提示

  • 用isDateTime()做验证:转换前一定要检查单元格是否为有效日期,避免非日期值导致报错。
  • 自定义日期格式:调整date()或format()中的格式字符串就能得到你需要的样式,比如Y-m-d会输出2018-03-01。
  • 1904日期系统兼容:PHPExcel会自动识别Excel文件是否使用1904(Mac)日期系统,无需额外处理。

内容的提问来源于stack exchange,提问作者user8717594

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:35:23