2016-09-29 5 views
1

Wie kann ich das Datum von einem Excel verwenden. Ich verwende eine for-Schleife zur Ausgabe der DateiPHPExcel date to string

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

Aber die Ausgabe sieht wie folgt aus:

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

Wie bekomme ich etwas wie das 2016-08.01?

+0

' getFormattedValue() 'ist möglicherweise besser als' getValue() ', da (wenn Sie loadDataOnly beim Laden der Datei als true angegeben haben, wird dieser serialisierte MS Excel-Zeitstempel in eine formatierte Zeichenfolge konvertiert, die das Datum –

Antwort

0

Was Sie bekommen, ist Sekunden von 1970 etwas Ähnliches wie das Versuchen, wie in this answer erwähnt:

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

Sie können aber auch wandeln es nur in PHP mit diesem:

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

widerspiegelt ('Ym-d', $ Blatt -> getCellByColumnA ndRow (1,12) -> getValue()); Ich habe 1970-01-01. aber warum – nicoschuck

+2

'Sekunden von 1870' .... Tage von 1-Jan-1900 (oder 1904 auf Mac) tatsächlich; das ist ein serialisierter MS Excel-Zeitstempel, kein Unix-Zeitstempel –

+1

Hat das Link-Echo-Datum nicht gesehen ('Y-m-d', PHPExcel_Shared_Date :: ExcelToPHP ($ sheet -> getCellByColumnAndRow (1,12) -> getValue())); funktioniert. VIELEN DANK FÜR IHRE HILFE – nicoschuck