2016-09-29 16 views
1

どのように私はExcelから日付を使用することはできません。 私は、出力ファイルPHPExcel日付から文字列へ

echo $sheet -> getCellByColumnAndRow($j,$i)->getValue(); 

にforループを使用しますが、出力は以下のようになります。

Date | Name 
--------------- 
425831 | Peter 
425831 | Nils 

は、どのように私はその2016から08.01のような何かを得ますか?あなたが取得している何

+0

'ファイルをロードするときにloadDataOnlyをtrueに指定していれば、そのMS Excelのシリアライズされたタイムスタンプを日付を反映した書式設定された文字列に変換します。 –

答えて

0

は秒である1970年からthis answerで述べたように、これに似た何かを試してみてください:

$cell = $excel->getActiveSheet()->getCell('B' . $i); 
$InvDate= $cell->getValue(); 
if(PHPExcel_Shared_Date::isDateTime($cell)) { 
    $InvDate = date($format, PHPExcel_Shared_Date::ExcelToPHP($InvDate)); 
} 

ただしもちょうどこのとPHPでそれを変換することができます

date('Y-m-d',PHPExcel_Shared_Date::ExcelToPHP($sheet -> getCellByColumnAndRow(1,12)->getValue())); 
+0

私はエコー日付を試しました。 ( 'Ym-d'、$ sheet-> getCellByColumnA ndRow(1,12) - > getValue());私は1970年1月1日を得ました。しかしなぜ – nicoschuck

+2

'秒から1870年代に' .... 1900年1月1日(またはMacでは1904年)からです。それはMS Excelシリアライズされたタイムスタンプで、Unixのタイムスタンプではありません。 –

+1

リンクのエコー日付(「Y-m-d」、PHPExcel_Shared_Date :: ExcelToPHP($ sheet-> getCellByColumnAndRow(1,12) - > getValue()))働くあなたの助けに感謝します – nicoschuck

関連する問題