Foros del Web » Programando para Internet » PHP »

Problema con fechas

Estas en el tema de Problema con fechas en el foro de PHP en Foros del Web. Hola a todos, tengo un problema con unas fechas que tengo guardadas en una BBDD de mysql. El tema es que cuando yo hago una ...
  #1 (permalink)  
Antiguo 05/05/2010, 05:16
 
Fecha de Ingreso: julio-2005
Mensajes: 12
Antigüedad: 19 años, 4 meses
Puntos: 0
Problema con fechas

Hola a todos, tengo un problema con unas fechas que tengo guardadas en una BBDD de mysql. El tema es que cuando yo hago una select para obtener una fecha el formato que me da es el correcto, pongamos que al meterlo en una variable me aparece lo siguiente: 2010-03-25 15:43:26. El problema es que al pasar esta variable a través de un formulario a otra pagina php el resultado que me da es el siguiente: 1970-09-05 01:09:42.

¿Alguien sabe por que ocurre esto?, no se si tiene algo que ver con la funcion "timestamp", pero necesitaría poder pasar el valor correctamente de una página a otra, ¿Sabeis como hacerlo?.

Muchas gracias.

  #2 (permalink)  
Antiguo 05/05/2010, 05:44
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años, 7 meses
Puntos: 40
Respuesta: Problema con fechas

¿Nos muestras el código para que te podamos ayudar?

Un saludo
  #3 (permalink)  
Antiguo 05/05/2010, 06:37
Avatar de martin0341  
Fecha de Ingreso: septiembre-2006
Ubicación: Rosario - Santa Fe
Mensajes: 296
Antigüedad: 18 años, 2 meses
Puntos: 8
Respuesta: Problema con fechas

Sin código es difícil darte una mano.
  #4 (permalink)  
Antiguo 05/05/2010, 07:07
 
Fecha de Ingreso: julio-2005
Mensajes: 12
Antigüedad: 19 años, 4 meses
Puntos: 0
Respuesta: Problema con fechas

Ok, esta es la parte de codigo que recoge la fecha y la envía a otra página:

<FORM METHOD ="GET" action="modificar.php">
Modificar incidencia
<select name="lincidencia">

<?php




$v1 = $_GET['v1'];
$v2 = $_GET['v2'];
$v3 = $_GET['estado'];
$v4 = $_GET['centro'];

$link = mysql_connect("localhost","root","tiger")
or die ("no se ha podido conectar");


mysql_select_db("sspdb1")
or die("Error al tratar de selecccionar esta base");

$dbname="sspdb1";
$query="select * from incidencias WHERE estado = '$v3' and centro = '$v4';";
$result=mysql_db_query ($dbname, $query, $link);

while ($row = mysql_fetch_array ($result))
{
$fecha = date("ymdHis",$v1);
echo "<option value=".date("ymdHis",$row[idIncidencias]).">".$row[idIncidencias]."</option>";



}

?>
</select>
<input type="submit" Value="Modificar"></input>
  #5 (permalink)  
Antiguo 05/05/2010, 09:21
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años, 7 meses
Puntos: 40
Respuesta: Problema con fechas

¿Y si pones todo el código que está implicado como es lógico? La parte que envía y la parte que recibe, no somos adivinos.

¿En el campo idIncidencias hay un timestamp?
  #6 (permalink)  
Antiguo 05/05/2010, 09:53
 
Fecha de Ingreso: julio-2005
Mensajes: 12
Antigüedad: 19 años, 4 meses
Puntos: 0
Respuesta: Problema con fechas

La parte que recibe es:

$v1 = $_GET['lincidencia'];

Si le hago un echo "$v1"; ya me aparece la fecha mal.

Gracias.
  #7 (permalink)  
Antiguo 05/05/2010, 09:59
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años, 7 meses
Puntos: 40
Respuesta: Problema con fechas

Cita:
Iniciado por Heli0s Ver Mensaje
¿En el campo idIncidencias hay un timestamp?
¿Son números sin sentido aparente? ¿O es una fecha en el formato que tu quieres?

Un saludo
  #8 (permalink)  
Antiguo 05/05/2010, 10:06
 
Fecha de Ingreso: julio-2005
Mensajes: 12
Antigüedad: 19 años, 4 meses
Puntos: 0
Respuesta: Problema con fechas

Si, me da una combinacion de numeros de 12 cifras 700101013330 que al transformarlo a fecha me resuelve la siguiente 1970-09-05 01:09:42.

Por lo que he leido inducido por tu réplica de antes, es muy probable que sea por el Timestamp mas que nada por el tema de que aparezca el año 1970, pero no se si es que hay que sumarle alguna cantidad a la cifra que me da o algo por el estilo, lo que si he visto en mi navegador que al pasar la variable de la página 1 a la 2 por php le manda lo siguiente:

modificar.php?lincidencia=700101013330

Así que no se como solucionarlo seguiré buscando..

Gracias

Saludos.
  #9 (permalink)  
Antiguo 05/05/2010, 10:09
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años, 7 meses
Puntos: 40
Respuesta: Problema con fechas

¿Puedes poner el código exacto que tienes a la hora de recogerlo? yo creo que el problema esta en que lo pasas dos veces por la función date o algo así, pero son especulaciones, hasta que no vea el código real no puedo saberlo.

Un saludo
  #10 (permalink)  
Antiguo 05/05/2010, 10:15
 
Fecha de Ingreso: julio-2005
Mensajes: 12
Antigüedad: 19 años, 4 meses
Puntos: 0
Respuesta: Problema con fechas

La fecha está en la base de datos, yo la recojo así:

while ($row = mysql_fetch_array ($result))
{
$fecha = date("ymdHis",$v1);
echo "<option value=".date("ymdHis",$row[idIncidencias]).">".$row[idIncidencias]."</option>";
}

Y si esto lo apso a una variable me da la fecha correcta, el problema está cuando la variable es enviada a la otra página.

No se si me explico muy bien ya que es mi primera aplicación con PHP+Mysql

Gracias.

Saludos.
  #11 (permalink)  
Antiguo 05/05/2010, 10:17
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años, 7 meses
Puntos: 40
Respuesta: Problema con fechas

Has dicho en el primer post que en ese campo se te muestra bien, y en ese campo lo que se muestra es $row[idIncidencias], no date("ymdHis",$row[idIncidencias]), y si quitas el date? pruebalo, y aún sigo esperando el código de la pagina modificar.php.

Un saludo
  #12 (permalink)  
Antiguo 06/05/2010, 03:36
 
Fecha de Ingreso: julio-2005
Mensajes: 12
Antigüedad: 19 años, 4 meses
Puntos: 0
Respuesta: Problema con fechas

Hola de nuevo,

si le quito el date el resultado es el mismo, se lo puse unicamente para ver si con eso me devolvía otro resultado. Te paso el codigo de modificar.php pero yo creo que el problema esta antes ya que en la barra de direcciones del navegador ya le pasa la variable como te indique en el otro post

modificar.php?lincidencia=700101013330

Aqui va:

<HTML>
<Body>
<?php

$v1 = $_GET['lincidencia'];
$fecha = date("Y-m-d h:m:s",$v1);
echo "$fecha";

$link = mysql_connect("localhost","root","tiger")
or die ("no se ha podido conectar");
mysql_select_db("sspdb1")
or die("Error al tratar de selecccionar esta base");
$dbname="sspdb1";

$query="select * from incidencias WHERE idIncidencias = '$fecha';";

$result=mysql_db_query ($dbname, $query, $link);
print ("<TABLE border='1' align='center'><TR bgcolor='lightblue'><TD align='center'>Fecha</TD><TD>Centro</TD><TD>Usuario</TD><TD>Sistema</TD><TD>Unidad</TD><TD>Estado</TD><TD align='center'>Descripcion</TD><TD>intervencion</TD></TR> ");
while ($row = mysql_fetch_array ($result))
{




if ($row[estado]=="1")
{
print ("<TR bgcolor='red'>");



}

else
{
if ($row[estado]=="2")
{
print ("<TR bgcolor='yellow'>");
}
else
{
if ($row[estado]=="4")

{
print ("<TR bgcolor='lightgrey'>");
}


else
{
print ("<TR bgcolor='lightgreen'>");
}

}
}


print ("<TD><font size='2'>$row[idIncidencias]</font></TD>\n");
print ("<TD><font size='2'>$centro</font></TD>\n");
print ("<TD><font size='2'>$row[usuario]</font></TD>\n");
print ("<TD><font size='2'>$sistema</font></TD>\n");
print ("<TD><font size='2'>$uni</font></TD>\n");
print ("<TD><font size='2'>$row[estado]</font></TD>\n");
print ("<TD><font size='2'>$row[descripcion]</font></TD>\n");
print ("<TD><font size='2'>$row[comentario]</font></TD>\n");
print ("</TR>");

}
mysql_free_result($result);
#cierra la base de datos
mysql_close($link);

?>
</Body>
</HTML>

Saludos y gracias por las molestias.
  #13 (permalink)  
Antiguo 06/05/2010, 03:39
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años, 7 meses
Puntos: 40
Respuesta: Problema con fechas

Bien, ahora necesito saber, que es lo que tienes exactamente en el campo IdIncidencias, es una fecha con este formato? yyyy-mm-dd?, o son números(Osea, un timestamp)?


Un saludo
  #14 (permalink)  
Antiguo 06/05/2010, 04:12
 
Fecha de Ingreso: julio-2005
Mensajes: 12
Antigüedad: 19 años, 4 meses
Puntos: 0
Respuesta: Problema con fechas

Hola de nuevo Helios,

La fecha la obtengo asi $fecha = date("ymdHis"); y lo que subo a la base es la variable $fecha. Si abres directamente la tabla de Mysql co nel Workbench, en la tabla idIncidencias me aparece el contenido así 2010-05-06 11:44:42

Saludos.
  #15 (permalink)  
Antiguo 06/05/2010, 04:21
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años, 7 meses
Puntos: 40
Respuesta: Problema con fechas

Entonces no uses la función date ni para mostrar la fecha en pantalla ni para enviarla, la fecha ya tiene el formato que necesitas, solo recoge el valor de la base de datos y imprimelo en pantalla.

Un saludo
  #16 (permalink)  
Antiguo 06/05/2010, 05:00
 
Fecha de Ingreso: julio-2005
Mensajes: 12
Antigüedad: 19 años, 4 meses
Puntos: 0
Respuesta: Problema con fechas

Ok parece que se ha resuelto parte del problema al quitar el date, ahora en el navegador si que aparece que pase la fecha correcta, pero solo pasa el año, el mes y el día y yo necesitaba que pasará tambien H:M:S.
  #17 (permalink)  
Antiguo 06/05/2010, 05:01
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años, 7 meses
Puntos: 40
Respuesta: Problema con fechas

Postea de nuevo el código que tienes actualmente, ambos, para que los examine.

Un saludo
  #18 (permalink)  
Antiguo 06/05/2010, 05:07
 
Fecha de Ingreso: julio-2005
Mensajes: 12
Antigüedad: 19 años, 4 meses
Puntos: 0
Respuesta: Problema con fechas

El codigo de la primera página es este:


<FORM METHOD ="GET" action="gestion.php">

<select name="estado">
<option value="1">1 - Pendiente</option>
<option value="2">2 - Atendida</option>
<option value="3">3 - Resuelta</option>
<option value="4">4 - Cerrada</option>
</select>


<select name="centro">
<option value="0">Todos</option>
<option value="1">ACE</option>
<option value="2">AGP</option>
<option value="3">ALC</option>
<option value="4">AREA</option>
<option value="5">ATO</option>
<option value="6">BCN</option>
<option value="7">BIL</option>
<option value="8">CHA</option>
<option value="9">IBZ</option>
<option value="10">IFE</option>
<option value="11">LPA</option>
<option value="12">MAH</option>
<option value="13">PMI</option>
<option value="14">TFN</option>
<option value="15">TFS</option>
<option value="16">VLC</option>
<option value="17">ZAR</option>
</select>
<input type="submit" Value="ACEPTAR"></input>



</select>
</FORM>

<FORM METHOD ="GET" action="modificar.php">
Modificar incidencia
<select name="lincidencia">

<?php




$v1 = $_GET['v1'];
$v2 = $_GET['v2'];
$v3 = $_GET['estado'];
$v4 = $_GET['centro'];

$link = mysql_connect("localhost","root","tiger")
or die ("no se ha podido conectar");


mysql_select_db("sspdb1")
or die("Error al tratar de selecccionar esta base");

$dbname="sspdb1";
$query="select * from incidencias WHERE estado = '$v3' and centro = '$v4';";
$result=mysql_db_query ($dbname, $query, $link);

while ($row = mysql_fetch_array ($result))
{
$fecha =$row[idIncidencias];

echo "<option value=".$row[idIncidencias].">".$row[idIncidencias]."</option>";



}

?>
</select>
<input type="submit" Value="Modificar"></input>


El de modificar.php no lo he cambiado porque en el navegador me indica que me manda 2010-03-25.

Saludos.
  #19 (permalink)  
Antiguo 06/05/2010, 05:21
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años, 7 meses
Puntos: 40
Respuesta: Problema con fechas

Cuando estás viendo la página, con IE o con FF o con el navegador que sea, mira el código del <option> (botón derecho->ver código fuente), y dime si en el código esta la fecha completa, con horas minutos y segundos también.

Un saludo
  #20 (permalink)  
Antiguo 06/05/2010, 05:45
 
Fecha de Ingreso: julio-2005
Mensajes: 12
Antigüedad: 19 años, 4 meses
Puntos: 0
Respuesta: Problema con fechas

En la primera si que aparece la fecha completa al ver el codigo fuente, en modificar.php no.

Slds
  #21 (permalink)  
Antiguo 06/05/2010, 05:50
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años, 7 meses
Puntos: 40
Respuesta: Problema con fechas

Bueno pues entonces, antes de pasar la variable al atributo value de la etiqueta <option>, pasa la fecha por la función urlencode, así se codificará y no creo que haya problemas para pasarla, después en modificar.php la variable GET la pasas por urldecode y ya está como al principio, y creo que esta vez estará entera.

Un saludo
  #22 (permalink)  
Antiguo 06/05/2010, 07:26
 
Fecha de Ingreso: julio-2005
Mensajes: 12
Antigüedad: 19 años, 4 meses
Puntos: 0
Respuesta: Problema con fechas

Vamos progresando, ahora ya llega todo a modificar.php pero en este formato:

2010-03-24+18%3A23%3A34 tanto con el urldecode como mostrando directamente la variable sin decodificar.
  #23 (permalink)  
Antiguo 06/05/2010, 09:25
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años, 7 meses
Puntos: 40
Respuesta: Problema con fechas

Muéstrame los dos códigos de nuevo para que los vuelva a examinar.

Un saludo

Etiquetas: fechas
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 14:11.