PHP Non-Thread Safe vs Thread Safe
Actualmente las versiones de PHP se están distribuyendo como Non-Thread Safe (NTS) y Thread Safe (TS), veamos en que consiste cada una: Thread Safe (TS) es una característica que permite optimizar PHP para un entorno MultiHilo (Windows) y no Multiproceso (Linux) , siendo así mas efectivo en Apache para Windows ya que permite, dicho de una forma totalmente ambigua, cargar todo el ambiente de PHP y mantenerlo en la memoria para todos los hilos que lo necesiten. Esto sin embargo generaba problemas varios en ISS al ejecutar PHP como ISAPI ya que muchas extensiones estaban hechas pensado en el modelo Multiproceso (Linux) y obligaba a utilizar PHP como CGI, esto lo hacía más estable pero exageradamente más lento debido a que tiene que cargar y descargar de la memoria el ambiente completo de PHP en cada requerimiento o proceso. Lo que Non-Thread Safe (NTS) permite es configurar ISS y otros servidores basados en el modelo de Windows (MultiHilo) para que usen PHP como CGI pero mejorando...
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?