错误导入Excel日期PHP

时间:2015-08-11 15:45:36

标签: php phpexcel

尝试通过PHP将excel上传到我的数据库时遇到问题。

我在excel中的格式是dd / mm / yyyy,我的sql需要yyyy / mm / dd

$_DATOS_EXCEL[$i]['ship_day']= $objPHPExcel->getActiveSheet()-  >getCell($headings['Ship Date'].$i)->getFormattedValue();

我试过了 getFormattedValue(' YYYY / MM / DD&#39);

但不起作用

如果你能帮助我,我真的很感激。

2 个答案:

答案 0 :(得分:0)

如果您的单元格值确实是Excel序列化日期/时间值,并且您知道哪些单元格包含这些日期,那么您可以将其直接转换为PHP DateTime对象

$dto = PHPExcel_Shared_Date::ExcelToPHPObject(
    $objPHPExcel->getActiveSheet()
        ->getCell($headings['Ship Date'].$i)
        ->getValue()
);
$_DATOS_EXCEL[$i]['ship_day'] = $dto->format('Y/m/d');

或Unix时间戳

$unixTimestamp = PHPExcel_Shared_Date::ExcelToPHP(
    $objPHPExcel->getActiveSheet()
        ->getCell($headings['Ship Date'].$i)
        ->getValue()
);
$_DATOS_EXCEL[$i]['ship_day'] = date('Y/m/d', $unixTimestamp);

答案 1 :(得分:0)

之后添加三行
"$_DATOS_EXCEL[$i]['ship_day']= $objPHPExcel->getActiveSheet()-  >getCell($headings['Ship Date'].$i)->getFormattedValue();" 

这条线......

$rearrange=$_DATOS_EXCEL[$i]['ship_day'];
$explode = explode("/",$rearrange);
$_DATOS_EXCEL[$i]['ship_day']= $explode[2]."/".$explode[1]."/".$explode[0];