PHP:¿Cómo obtener la fecha en formato dd/mm/aaaa HH:MM:SS a partir de un campo "OleDate" (un campo fecha) desde un archivo Excel?

De Foros del Web

NOTA: Esto es válido para cuando se obtiene la fecha a partir de un Excel con la librería Spreadsheet_Excel_Reader de PEAR en PHP:

Código PHP:

$data->sheets[$numero_hoja]['cells'][$i][$j] 

El número que retorna es un DOUBLE. Por ejemplo, si la fecha es 01/09/2007 00:15:00, esto aparecerá como valor 39326.0104167.

Para regresar al formato válido en PHP, aplicar lo siguiente

Código PHP:

$fecha1 = (39326.0104167 + 1 - 25569.833299) * 86400;  
echo (date("d/m/Y H:i:s",$fecha1)."<br />");  

Esto retorna 01/09/2007 00:15:02

Como pueden ver, tiene un margen de error de 2 segundos. Esto se puede corregir jugando con el valor 25569.833299, agregando aún más decimales para hacer el cálculo más preciso.


--chilenozzz 04 Nov 2007

Este artículo es parte de las FAQs de PHP y el Manual de PHP.

Herramientas personales