2017-04-10 112 views
0

所以,我一个相当新的PHP程序员,我试图建立的是上传文件,在表中显示的信息的网页,然后将数据写入到数据库。如何在PHPExcel中格式化日期?

我有这些东西的工作(我发现一些有用的代码在网上),但是我的日期显示不正确。

例如,日期“2017年2月15日17时55”被显示为“42781.746527778”。

下面是代码:

try { 
     $inputFileType = PHPExcel_IOFactory::identify($inputFileName); 
     $objReader = PHPExcel_IOFactory::createReader($inputFileType); 
     $objPHPExcel = $objReader->load($inputFileName); 

    } catch (Exception $e) { 
     die('Error loading file "' . pathinfo($inputFileName, PATHINFO_BASENAME) 
     . '": ' . $e->getMessage()); 
    } 


    echo '<center><table style="width:50%;" border=1>'; 


    $sheet = $objPHPExcel->getSheet(0);  
    $highestRow = $sheet->getHighestRow();  
    $highestColumn = $sheet->getHighestColumn();  


    for ($row = 1; $row <= $highestRow; $row++) { 



     $rowData = $sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row, 
     NULL, TRUE, FALSE); 


     echo "<tr>"; 


     foreach($rowData[0] as $k=>$v) 
      echo "<td>".$v."</td>"; 

     echo "</tr>"; 
    } 

    echo '</table></center>'; 

} 

else{ 
    echo '<p style="color:red;">Please upload file with xlsx extension only.</p>'; 
} 

我明白为什么它显示的日期是这样,但我不是在试图为日期和时间显示整个列时修复它有运气,或将其作为正确的日期和时间显示在单个单元格中。

var_dump($objPHPExcel->getActiveSheet()->getCell('B2')->getFormattedValue()); 

此代码显示我的示例电子表格中的一个的正确日期和时间,但是我无法在单元格中获取该值。

任何帮助,将不胜感激。谢谢!

+0

附:我知道PHPExcel_Shared_Date :: ExcelToPHPObject()函数,但我真的不知道如何在此代码中使用它。 –

回答

1

我相信这是你在找什么?检查单元格是否为Excel日期和时间,然后提取并将Excel日期转换为PHP日期。

if(PHPExcel_Shared_Date::isDateTime($k)) { 
    $v = date('Y-m-d', PHPExcel_Shared_Date::ExcelToPHP($v)); 
} 
+0

请添加描述。 – user7294900

+0

我已经编辑我的解决方案,以反映您的解决方案 – designdrumm