2017-04-10 110 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