PHPExcel 字符串到时间

PHPExcel String to Time

我创建了一个 Excel 电子表格。在第二列中,我有像 0:11:232:03:33 这样的值,价值几千行。使用 PHP 我将格式设置为:

    $sheet->getStyle($colRange)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME4);

但是单元格仍然只是字符串。如果您将单元格从 0:11:22 编辑为 0:11:33 等其他内容,则该单元格将转换为时间。在顶部,它从 0:11:22 变为 0:11:33 AM 自动添加 AM 似乎是一个巨大的变化,然后我可以对文件做我想做的事。

如何将数千个单元格从 0:11:22 更改为 0:11:22 AM

试试这个

$sheet
    ->getStyle($colRange)
    ->getNumberFormat()
    ->setFormatCode('[$-C09]d mmm yyyy;@');

那是因为您必须将 date/time 转换为 MS Excel 序列化时间戳,并将该值存储在单元格中;如 /Examples 文件夹中的 PHPExcel Documentation and shown in 02types.php 中所述。

一旦您存储了实际的 MS Excel 时间戳值,您就可以对其应用格式

$objPHPExcel->getActiveSheet()->setCellValue('A12', 'Date/Time')
    ->setCellValue('B12', 'Time')
        ->setCellValue('C12', PHPExcel_Shared_Date::PHPToExcel( $dateTimeNow ));
$objPHPExcel->getActiveSheet()
    ->getStyle('C12')
    ->getNumberFormat()
    ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME4);

这是一个旧的 post 但也许它会对某人有所帮助...

$objPHPExcel->getActiveSheet()
->setCellValue('E5', '=TEXT(TIMEVALUE("'. $the_str_Time . '"),"[h]:mm")');

TIMEVALUE函数将字符串转为时间, 并且 TEXT 函数为它们提供了所需的格式。 我的是测量时间超过 24 小时