db2_connect conectar php datetime db2 timestamp

conectar - Marca de tiempo de DB2 PHP DateTime



conectar php a db2 (1)

Creo que su función (cualquiera que sea) se está ahogando en los microsegundos al final de su cadena de fecha. Use la función DateTime::createFromFormat() para lidiar con esto usando la etiqueta ''u'' microsegundo. Vea aquí http://php.net/manual/en/function.date.php

$time = DateTime::createFromFormat(''Y-m-d-h.i.s.u'', ''2010-12-15-10.23.22.716000''); var_dump($time);

Salida en mi sistema: -

object(DateTime)[1] public ''date'' => string ''2010-12-15 10:23:22'' (length=19) public ''timezone_type'' => int 3 public ''timezone'' => string ''UTC'' (length=3)

Después de la actualización a PHP 5.3, mi aplicación devuelve las columnas de DB2 con tipo Timestamp como "2010-12-15-10.23.22.716000". Esto está causando problemas para la función PHP DateTime, ya que falla con

$ time = new DateTime ("2010-12-15-10.23.22.716000");

Error al analizar la cadena de tiempo (2010-12-15-10.23.22.716000) en la posición 25 (0): carácter inesperado

Parece que tiene un problema con demasiada precisión en la marca de tiempo de DB2. ¿Puedo de alguna manera forzar la conexión para cambiar el formato de la marca de tiempo con el que está recuperando datos?

Me estoy conectando a la base de datos con la función db2_connect de esta manera:

$ this-> connection = db2_connect ($ config [''dsn''], $ config [''username''], $ config [''password'']);

Editar: Me gustaría utilizar la solución que se menciona a continuación, pero no funciona para mí y para mi sistema (AS400) funciona de manera extraña. Tengo: $ timeRec = DateTime :: createFromFormat (''Ymdh.isu'', $ value);

$value = $timeRec->format(''Y-m-d H:i:s''); $value = new DibiDateTime($value);

Si hago var_dump ($ value) después de -> format, se devuelve la cadena correcta, pero si intento alimentar esta cadena a DibiDateTime, eso tiene:

public function __construct($time = ''now'', DateTimeZone $timezone = NULL) { if ($timezone === NULL) { parent::__construct($time); } }

entonces falla con:

formato de función () en un objeto no

Incluso cuando revisé antes con var_dump ($ timeRec) es el objeto DateTime adecuado.