Driver de Microsoft para PHP y SQL Server
Muy útil este driver que mejora considerablemente el rendimiento de cualquier aplicación de PHP que actualmente utilice el driver ODBC, la ganancia de rendimiento y velocidad se puede ver incrementada en hasta un 70%, por lo menos en mi caso a sido así, aunque hay que tener algunas cosas en cuenta con este nuevo driver que puedes descargar desde este enlace . Este tipo de driver por ejemplo aún no implementa saber el número de datos que devuelve una consulta del tipo SELECT, para UPDATE o DELETE si pero no para los SELECT, el típico mysql_num_rows, pues esto aún no existe aunque es muy probable que en este 2009 en la versión 1.1 sea implementado junto con la compatibilidad con PHP 5.3, estas noticias se pueden ver en su blog original . Otra de las características interesantes es que las fechas no las devuelve como un simple string sino como un objeto del tipo DateTime, de tal manera que si queremos utilizar esta fecha como una cadena y no tratamos este tipo de datos obtenemos el si
Comentarios
y siempre tengo que sumale un dia sino me muestra el dia anterior indicado en el excel:
$timestamp = PHPExcel_Shared_Date::ExcelToPHP($val);
$timestamp = strtotime("+1 day",$timestamp);
$fecha = date("d/m/Y", $timestamp);
en mi excel dice: 04/10/2011 y con el ejemplo que pones sale: 03/10/2011.
Gracias por tu ayuda.
Resumido también puede ser:
$mifecha = date("Y-m-d", PHPExcel_Shared_Date::ExcelToPHP( $worksheet->getCellByColumnAndRow(5, $row)->getValue() + 1 ) );
Saludos :D
Atte Vic
Me ha venido genial pues usaba la librería para escribir en EXCELS y estaba buscando algún script para transformar los números cuando la librería lo soluciona sin problemas.
saludos
La solución es como has hecho tu, adaptarlo y restarle o sumarle la diferencia horaria con GMT, en mi caso suelen ser 1 o 2 horas dependiendo del horario de verano o no.
Saludos
Creo que hay un pequeño fallo en el código...donde dice:
// utilizo la función y obtengo el timestamp
$timestamp = PHPExcel_Shared_Date::ExcelToPHP($fecha);
Creo que deberia ser:
// utilizo la función y obtengo el timestamp
$timestamp = PHPExcel_Shared_Date::ExcelToPHP($fecha_excel);
***Por lo menos a mi si me ha funcionado así, de la otra manera me salia un valor erróneo**
Saludos,
$fecha = gmdate("d/m/Y", $timestamp);
date("Y-m-d", strtotime("+1 day", PHPExcel_Shared_Date::ExcelToPHP($Fecha)));
Donde $Fecha es la fecha desde excel, le llame FIEXCEL, gracias de veras.
Y si tienes fechas vacías en el campo fecha? Que sean NULL
$fecha = date('Y-m-d',PHPExcel_Shared_Date::ExcelToPHP($fecha));
CAST('$fecha' AS DATE),
Como lo pones?