2017-06-01 4 views
1

J'ai des tables xlsx et j'utilise PhpSpreadsheet pour les analyser. Le format de certaines cellules est la date. Le problème est que PhpSpreadsheet renvoie les valeurs de cellules au format date dans un format non précisé:Comment extraire la date d'une cellule de tableau à l'aide de PhpSpreadsheet?

// How it looks in excel: 2017.04.08 0:00 
$value = $worksheet->getCell('A1')->getValue(); // 42833 - doesn't look like a UNIX time 

Comment obtenir la date d'une cellule sous forme d'un temps UNIX ou une instance DateTimeInterface?

Répondre

4

La valeur est nombre de jours écoulés depuis 1900. Vous pouvez utiliser les PhpSpreadsheet fonctions intégrées pour le convertir en un horodatage unix:

$value = $worksheet->getCell('A1')->getValue(); 
$date = \PhpOffice\PhpSpreadsheet\Shared\Date::excelToTimestamp($value); 

Ou un objet PHP DateTime:

$value = $worksheet->getCell('A1')->getValue(); 
$date = \PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($value);