Foros del Web » Programando para Internet » PHP »

validar fechas en php

Estas en el tema de validar fechas en php en el foro de PHP en Foros del Web. hola!!! les comento que tengo tres textbox o cajas de texto, en las cuales hay unas fechas en el formato yyyy-mm-dd, yo quiero comparar si ...
  #1 (permalink)  
Antiguo 10/07/2006, 07:51
Avatar de Stickmaster2004  
Fecha de Ingreso: septiembre-2004
Ubicación: Barranquilla
Mensajes: 568
Antigüedad: 19 años, 7 meses
Puntos: 0
validar fechas en php

hola!!!

les comento que tengo tres textbox o cajas de texto, en las cuales hay unas fechas en el formato yyyy-mm-dd, yo quiero comparar si la una es mayor que la otra y asi sucesivamente, hay alguna funcion para ello????, muestrenme un ejemplo si lo tienen, les agradeceria muchisimo.

bye.
__________________
Solo el que se basa en conocimiento basico y cultiva el aprendizaje obtendra sabiduria
  #2 (permalink)  
Antiguo 10/07/2006, 09:13
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Podrías usar:

strtotime()
www.php.net/strtotime

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 10/07/2006, 09:22
 
Fecha de Ingreso: agosto-2002
Mensajes: 135
Antigüedad: 21 años, 7 meses
Puntos: 0
Mejor busca un codigo en javascript para crear un mascara para validar la fecha, asi evitas que se introduzca una fecha erronea
__________________
El Web es el futuro...
y no solo lo digo yo
  #4 (permalink)  
Antiguo 10/07/2006, 09:36
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 18 años, 4 meses
Puntos: 281
esta es la que yo uso:

function compara_fechas($fecha1,$fecha2)
{
if (preg_match("/[0-9]{1,2}\/[0-9]{1,2}\/([0-9][0-9]){1,2}/",$fecha1))
list($dia1,$mes1,$año1)=split("/",$fecha1);
if (preg_match("/[0-9]{1,2}-[0-9]{1,2}-([0-9][0-9]){1,2}/",$fecha1))
list($dia1,$mes1,$año1)=split("-",$fecha1);
if (preg_match("/[0-9]{1,2}\/[0-9]{1,2}\/([0-9][0-9]){1,2}/",$fecha2))
list($dia2,$mes2,$año2)=split("/",$fecha2);
if (preg_match("/[0-9]{1,2}-[0-9]{1,2}-([0-9][0-9]){1,2}/",$fecha2))
list($dia2,$mes2,$año2)=split("-",$fecha2);
$dif = mktime(0,0,0,$mes1,$dia1, $año1) - mktime(0,0,0, $mes2,$dia2,$año2);
return ($dif);
}

devuelve un numero positivo si la primera fecha es mayor que la segunda, uno negativo si la primera es menor que la seguna y 0 si son iguales. Como bono funciona con ambos formatos:
'yyyy-mm-dd' y 'yyyy/mm/dd'
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...

Última edición por Cluster; 10/07/2006 a las 10:00
  #5 (permalink)  
Antiguo 10/07/2006, 10:00
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por Dr_Spider
Mejor busca un codigo en javascript para crear un mascara para validar la fecha, asi evitas que se introduzca una fecha erronea
Aunque lo hagas con javascript .. al final lo que manda -siempre- es la validación del lado del servidor . . así que sea como sea también tendrás que validar en PHP por -seguridad- ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 10/07/2006, 10:30
Avatar de Stickmaster2004  
Fecha de Ingreso: septiembre-2004
Ubicación: Barranquilla
Mensajes: 568
Antigüedad: 19 años, 7 meses
Puntos: 0
mas o menos

la de juaniquillo, me sirvio, pero....., no hay una forma mas rapida de hacer esto es decir algo como esto:

en javascript es asi:

<script>
fecha = '2006/10/03'; // mm/dd/aaaa
fecha2= '2006/10/03';
f1 = new Date();
f2 = new Date(fecha);
f3 = new Date(fecha2);
if (f1>f2)
{
alert ('Digite esa vaina bien');
}
else
{
alert('bien');
}

</script>

yo quiero hacer algo parecido, pero con php, para que compare con las horas del servidor despues el usuario puede sabotear(burlar) el sistema.

PD: ya tengo la fecha en formato: yyyy-mm-dd en unas cajas de texto.
__________________
Solo el que se basa en conocimiento basico y cultiva el aprendizaje obtendra sabiduria
  #7 (permalink)  
Antiguo 10/07/2006, 10:31
Geo
 
Fecha de Ingreso: marzo-2003
Ubicación: México
Mensajes: 44
Antigüedad: 21 años, 1 mes
Puntos: 2
Cita:
Iniciado por Cluster
Aunque lo hagas con javascript .. al final lo que manda -siempre- es la validación del lado del servidor . . así que sea como sea también tendrás que validar en PHP por -seguridad- ..

Un saludo,
Eso, una función Javascript es buenísima para el usuario pues el chequeo es inmediato (nada de llamar al servidor), pero para asegurar el chequeo debe hacerse del lado del servidor (yo me decanto por un uso de las dos). En mi libro de visitas sólo usaba una función javascript y muchos se la saltaban :P.

Saludos,
JJ (Geo).
__________________
La imaginación es el límite
Visita mi página o la versión anterior.
  #8 (permalink)  
Antiguo 10/07/2006, 11:04
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por Geo
Eso, una función Javascript es buenísima para el usuario pues el chequeo es inmediato (nada de llamar al servidor), pero para asegurar el chequeo debe hacerse del lado del servidor (yo me decanto por un uso de las dos). En mi libro de visitas sólo usaba una función javascript y muchos se la saltaban :P.

Saludos,
JJ (Geo).
A eso me refería .. una cosa es hacer validaciones en javascript por un tema de "usabilidad" y otro tema es validar en PHP por "seguridad" .. ambos temas son complementarios, no excluyentes.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #9 (permalink)  
Antiguo 10/07/2006, 11:06
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por Stickmaster2004
la de juaniquillo, me sirvio, pero....., no hay una forma mas rapida de hacer esto es decir algo como esto:

en javascript es asi:

<script>
fecha = '2006/10/03'; // mm/dd/aaaa
fecha2= '2006/10/03';
f1 = new Date();
f2 = new Date(fecha);
f3 = new Date(fecha2);
if (f1>f2)
{
alert ('Digite esa vaina bien');
}
else
{
alert('bien');
}

</script>

yo quiero hacer algo parecido, pero con php, para que compare con las horas del servidor despues el usuario puede sabotear(burlar) el sistema.

PD: ya tengo la fecha en formato: yyyy-mm-dd en unas cajas de texto.
Si usas strtotime() se simplifija la operación. Lo has visto ya?

Lo que hace esa función es convertir una fecha en formato "texto" (de casi cualquier formato origen) a un "timestamp" para que lo restes como "segundos" y luego si quieres le vuelves a dar un formato de fecha si corresponde con date().

Si mal no recuerdo hay ejemplos en las FAQ's de este foro PHP también al respecto.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #10 (permalink)  
Antiguo 10/07/2006, 15:36
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 18 años, 4 meses
Puntos: 281
estuve buscado un ejemplo de strtotime() en el FAQ pero no encontre nada. solo encontrer como comparar dos fechas que ya estan en la base de datos. Aunque ese funcion me parece buena para eso. Voy a hacer algunas pruevas y les digo.
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 20:58.