Foros del Web » Programando para Internet » PHP »

Warning formato fecha

Estas en el tema de Warning formato fecha en el foro de PHP en Foros del Web. Desde un formulario paso las variables introducidas $día, $mes y $año. Al hacer lo siguiente Código PHP: $fecha_dada = mktime ( 0 , 0 , ...
  #1 (permalink)  
Antiguo 22/07/2009, 04:44
 
Fecha de Ingreso: febrero-2008
Ubicación: Madrid
Mensajes: 474
Antigüedad: 16 años, 2 meses
Puntos: 1
Exclamación Warning formato fecha

Desde un formulario paso las variables introducidas $día, $mes y $año.

Al hacer lo siguiente

Código PHP:
$fecha_dada=mktime(0,0,0,$mes,$dia,$año); 
y ejecutarlo, funciona bien, pero me da el siguiente warning que me gustaría quitar:

Warning: mktime() expects parameter 4 to be long, string given in C:\wamp\www\insert.php on line 19

gracias
  #2 (permalink)  
Antiguo 22/07/2009, 05:06
 
Fecha de Ingreso: abril-2007
Mensajes: 82
Antigüedad: 17 años
Puntos: 0
Respuesta: Warning formato fecha

Comprueba lo que le esta llegando antes de hacer el mktime:

Código PHP:
 echo $mes '/' $dia '/' $año 
De todas formas yo no usaria la ñ para programar... los caracteres especiales suelen dar problemas.

PD. Incluso aqui lo da xD
  #3 (permalink)  
Antiguo 22/07/2009, 05:49
 
Fecha de Ingreso: febrero-2008
Ubicación: Madrid
Mensajes: 474
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: Warning formato fecha

Las fechas me llegan bien (he cambiado la ñ ya jeje), resultado:

12/31/1951
Warning: mktime() expects parameter 4 to be long, string given in C:\wamp\www\insert.php on line 20
  #4 (permalink)  
Antiguo 22/07/2009, 05:56
 
Fecha de Ingreso: abril-2007
Mensajes: 82
Antigüedad: 17 años
Puntos: 0
Respuesta: Warning formato fecha

Que versión de php utilizas? creo recordar que había un bug con esta función que hacia saltar este error, lo solucionaron en la versión 5.16 según he leído por ahí.

de todas formas prueba con esto:

Código PHP:
$fecha_dada=mktime(0,0,0,(int)$mes,(int)$dia,(int)$anio); 
Saludos!
  #5 (permalink)  
Antiguo 22/07/2009, 06:10
 
Fecha de Ingreso: febrero-2008
Ubicación: Madrid
Mensajes: 474
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: Warning formato fecha

Sigue dando el mismo error. Tengo la 5.2.5, la que viene con wamp 2.0
  #6 (permalink)  
Antiguo 22/07/2009, 06:32
 
Fecha de Ingreso: abril-2007
Mensajes: 82
Antigüedad: 17 años
Puntos: 0
Respuesta: Warning formato fecha

desde la version 5.1.0 solo se pueden poner fechas entre 1970 y 2038. Puede ser eso?
  #7 (permalink)  
Antiguo 22/07/2009, 07:33
 
Fecha de Ingreso: febrero-2008
Ubicación: Madrid
Mensajes: 474
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: Warning formato fecha

No, he probado con 1/01/1985 y da el mismo warning.
  #8 (permalink)  
Antiguo 22/07/2009, 07:41
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Warning formato fecha

Yo lo trate y me funciono
Código php:
Ver original
  1. $mes = 1;
  2. $dia = 1;
  3. $anio = 1985;
  4. echo mktime(0,0,0,(int)$mes,(int)$dia,(int)$anio);


Te sugiero hacer un var_dump a cada variable
Código php:
Ver original
  1. var_dump($mes);
  2. var_dump($dia);
  3. var_dump($anio);
  #9 (permalink)  
Antiguo 22/07/2009, 07:56
 
Fecha de Ingreso: febrero-2008
Ubicación: Madrid
Mensajes: 474
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: Warning formato fecha

nada, mismo warning.

¿puede ser la configuracion de php? lo tengo todo por defecto tal y como se instalo.
  #10 (permalink)  
Antiguo 22/07/2009, 08:21
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Warning formato fecha

¿Pero que te trae el var_dump?
  #11 (permalink)  
Antiguo 22/07/2009, 09:31
 
Fecha de Ingreso: febrero-2008
Ubicación: Madrid
Mensajes: 474
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: Warning formato fecha

si hago esto:

Código PHP:
echo var_dump($_POST['mes']);
echo 
var_dump($_POST['dia']);
echo 
var_dump($_POST['anio']); 
me muestra lo siguiente:

Código:
string(2) "12" string(2) "31" string(4) "2001"
Warning: mktime() expects parameter 4 to be long, string given in C:\wamp\www\insert.php on line 33
¿te sirve de algo?
  #12 (permalink)  
Antiguo 22/07/2009, 09:34
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Warning formato fecha

Y si en vez de escribir una variable $mes $dia $anio tu escribes
Código php:
Ver original
  1. echo mktime(0,0,0,$_POST['mes'],$_POST['dia'],$_POST['anio']);

¿Tu habías escrito en las variables el mes dia y anio de los post?

Código php:
Ver original
  1. $mes = $_POST["mes"];
  2. $dia = $_POST["dia"];
  3. $anio = $_POST["anio"];
  4. echo mktime(0,0,0,$mes,$dia,$anio);
  #13 (permalink)  
Antiguo 22/07/2009, 09:51
 
Fecha de Ingreso: febrero-2008
Ubicación: Madrid
Mensajes: 474
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: Warning formato fecha

No, directamente pongo:

Código PHP:
$fecha_dada=mktime(0,0,0, ($_POST['mes']),($_POST['dia']),($_POST['año']) ); 
no cambio el valor a dichas variables, lo reciben tal cual del formulario, no se si me preguntas eso...
  #14 (permalink)  
Antiguo 22/07/2009, 09:56
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Warning formato fecha

Pues trate el codigo como tu lo haces y me funciona perfectamente.
  #15 (permalink)  
Antiguo 22/07/2009, 09:58
 
Fecha de Ingreso: febrero-2008
Ubicación: Madrid
Mensajes: 474
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: Warning formato fecha

Pues que bien ...

Hay alguna forma de comerse ese error? algo así como el try catch que tienen muchos lenguajes...

Porque a mi me funciona pero me da ese warning
  #16 (permalink)  
Antiguo 22/07/2009, 10:00
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Warning formato fecha

puedes usar @ antes de la funcion
Código php:
Ver original
  1. @mktime(0,0,0, ($_POST['mes']),($_POST['dia']),($_POST['año']) );
  #17 (permalink)  
Antiguo 22/07/2009, 11:11
 
Fecha de Ingreso: febrero-2008
Ubicación: Madrid
Mensajes: 474
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: Warning formato fecha

Estupendo, ya no hay warnings jeje

Lastima arreglarlo así pero es lo único que funciona, muchas gracias.
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:05.