Foros del Web » Programando para Internet » PHP »

Como saber si una columna de una consulta es una fecha?

Estas en el tema de Como saber si una columna de una consulta es una fecha? en el foro de PHP en Foros del Web. Hola a todos, estoy programando un generador de reportes, pero solo tengo un inconveniente y es con los campos de tipo fecha, ya que estos ...
  #1 (permalink)  
Antiguo 02/11/2013, 09:48
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Como saber si una columna de una consulta es una fecha?

Hola a todos, estoy programando un generador de reportes, pero solo tengo un inconveniente y es con los campos de tipo fecha, ya que estos campos al intentar mostrarsen me generan el siguiente error:

Object of class DateTime could not be converted to string

Obvimente porque no estoy usando el format

Sin embargo como las consultas son dinamicas, yo necesito identificar cuando una columna es del tipo date o datetime ..... Es posible hacer esto con php ??

Agradezco me den alguna indicación.......
  #2 (permalink)  
Antiguo 02/11/2013, 10:00
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: Como saber si una columna de una consulta es una fecha?

Que código estas usando?

Ya que:

Código PHP:
Ver original
  1. //Mal
  2. $date = DateTime::createFromFormat("l dS F Y", $dateFromDB);
  3. echo $date; //Error Object of class DateTime could not be converted to string
  4.  
  5. //Bien
  6. $date = DateTime::createFromFormat("l dS F Y", $dateFromDB);
  7. $date = $date->format('d/m/Y');
  8. echo $date;

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #3 (permalink)  
Antiguo 02/11/2013, 10:23
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: Como saber si una columna de una consulta es una fecha?

Es que es un generador que recibe cualquier consulta y muestra los datos, investigando encontre que con gettype puedo saber el tipo de dato, pero me surge la duda, cuando es date o datetime devuelve object ??... que otro tipo de dato puede devolver object ??
  #4 (permalink)  
Antiguo 02/11/2013, 10:28
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: Como saber si una columna de una consulta es una fecha?

Estimado, sin código solo nos queda adivinar, no crees?

Ya te comenté que ese error es porque estás haciendo echo a un objeto que es instancia de la clase DateTime. Así que para saber cual es el problema muestra el código que procesa las fechas

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #5 (permalink)  
Antiguo 02/11/2013, 10:55
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: Como saber si una columna de una consulta es una fecha?

Ok aca va...Tengo almacenada en una tabla el reporte con la sentencia SQL:

Código PHP:
Ver original
  1. $sql="SELECT SENTENCIA FROM GENERA_REPORCAB WHERE COD_REP=1 ";
  2. $obj->consulta($sql);
  3. $row = sqlsrv_fetch_array($obj->result);
  4. $sentencia=$row[0]; //ESTA ES LA VARIABLE QUE ME TRAE LA CONSULTA SQL
  5. $columnas = $obj->numCampos(); //ACA IDENTIFICO EL NUMERO DE COLUMNAS DE LA SENTENCIA
  6.  
  7. /******Ahora voy a pintar los datos de la sentencia******/
  8. echo "<table border='1'>";
  9. while($row = sqlsrv_fetch_array($obj->result)):
  10. echo "<tr>";
  11. for ($k = 0; $k < $columnas; $k++)  
  12. echo "<td>".(gettype( $row[$k])=="object" ?   $row[$k]->format("d/m/Y")  : $row[$k] )."</td>";
  13. echo "</tr>";
  14. endwhile;
  15. echo "</table>";

Coloque que si gettype devuelve object entonces aplique la funcion format, pero lo que no es es que tipos de datos aparte de datetime devulven object

Etiquetas: columna, fecha
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:56.