PhpExcel单元格格式:如何在字符串和日期时间格式之间进行检测?

时间:2019-07-16 16:27:43

标签: php phpexcel phpexcelreader

我正在寻找Excel文件的同时验证日期和时间格式。有时可以不使用任何excel格式(日期,数字)等。当有人放置“ bbb”之类的字符而不是日期12-05-2018 06:24:23时。它将数据转换为今天的日期或服务器的初始日期(43435.093935185)。

这是错误的,我们如何检测单元格中提供的值是字符串还是日期?

我已经尝试过单元格格式函数getCellByColumnAndRow($ col,$ row)

但这并不能帮助检测数据是否有效,因为最终结果只是数字,而数字本身就是有效日期。

$data = $objWorksheet->getCellByColumnAndRow($col, $row);   

if(!strtotime($data)) {
    if(PHPExcel_Shared_Date::isDateTime($data)) {
        $cellValue = $objWorksheet->getCellByColumnAndRow($col, $row)->getValue();
        $dateValue = PHPExcel_Shared_Date::ExcelToPHP($cellValue);                       
        $dateh     = date('Y-m-d',$dateValue);                          
    } else {                        
        $dateh  = "";                                                   
    } else {
        $START_DATE = strtotime($data);
        $dateh = date('Y-m-d',$START_DATE);                         

    }               
}

$START_DATE = date('Y-m-d', PHPExcel_Shared_Date::ExcelToPHP($worksheet->getCellByColumnAndRow(1, $row)->getValue()));

我希望仅在日期有效时添加以dB为单位的日期,否则提供错误消息,

0 个答案:

没有答案