PHPExcel, Date être analysé de manière incorrecte

Actuellement, je suis en train de faire un programme pour mon travail qui utilise PHPexcel essentiellement de prendre toutes les données d'une feuille excel, créez une nouvelle feuille excel et au format texte, et le transfert de toutes les données de la vieille feuille excel.

Mon php doit être en mesure de prendre dans les valeurs de la vieille feuille excel et de les interpréter correctement, en particulier les dates de/nombre de/etc.

Tout fonctionne bien sauf pour les dates. Pour une raison quelconque, quand je reçois la valeur mise en forme de la cellule; il ne correspond pas au format de la date dans la première feuille. Plus spécifiquement, une valeur comme ceci: 12/31/2099 . Pour une raison quelconque, il lit le formatcode incorrectement comme mm-jj-aa et sorties 12-31-99. C'est extrêmement frustrant et j'ai parcouru la moitié de l'internet pour une réponse. De l'aide s'il vous plaît; je ne suis pas sûr de ce qu'est la question! Code:

<?php
$spreadSheet=$_FILES["filebrowser"]["tmp_name"];
/** PHPExcel_IOFactory */
require_once 'Classes/PHPExcel/IOFactory.php';
require_once 'Classes/PHPExcel/Shared/Date.php';
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
//Create temporary sheet from uploaded file data
$objPHPExcel = $objReader->load($spreadSheet);
$sheet = $objPHPExcel->getActiveSheet();
$sheet->setTitle("Original Data");
$data=$sheet->getCell("D9")->getFormattedValue();

var_dump($data);
exit;?>

D9 est une cellule avec le format de DATE et d'une valeur de 12/31/2099. Ce code imprime 12-31-99...

Essayez getValue() au lieu de getFormattedValue()
getValue() récupère les données brutes de la valeur de la cellule et renvoie un float.
À partir de ce que je peux dire ici (phpexcel.codeplex.com/discussions/371418), vous devez être en mesure d'utiliser Date: le Temps de convertir le format de date que vous souhaitez.
Oui, mais quand je rentre le code du format de la cellule, il renvoie un code de format mm-jj-aa au lieu de le mettre au bon format... Donc si j'essaie de faire quelque chose comme cela, il ne fonctionne pas: $s= $feuille->getCell("D9")->getValue(); $d=PHPExcel_Shared_Date::ExcelToPHP($s); $form=$feuille->getStyle("D9")->getNumberFormat()->getFormatCode(); var_dump(date($form,$d));
c'est une partie du problème, je ne peux pas explicitement définir le format de l'utilisateur, j'ai besoin de la formater pour pouvoir être générique basé sur ce que l'utilisateur a donné via excel.

OriginalL'auteur Joseph Amato | 2013-07-11