Foros del Web » Programando para Internet » PHP »

Problema con fecha

Estas en el tema de Problema con fecha en el foro de PHP en Foros del Web. Saludos a todos los foreros. Tengo un script PHP que almacena el mes y el año en variables distintas y luego con una operación comparo ...
  #1 (permalink)  
Antiguo 02/06/2009, 14:57
Avatar de Vonlist  
Fecha de Ingreso: mayo-2009
Mensajes: 13
Antigüedad: 15 años
Puntos: 0
Pregunta Problema con fecha

Saludos a todos los foreros.
Tengo un script PHP que almacena el mes y el año en variables distintas y luego con una operación comparo si el mes es igual al presente o uno anterior.
El formato de fecha es mes/año del tipo 6/09 por que si fuere del modo 06/2009 al restarle 1 al 06 me daría 5 y no 05. Eso no es tanto problema, lo que me complica es que en otro form, debo comparar una fecha del tipo dd/mm/aa como 02/06/09 y no se cómo separar los dias de los meses y el año para poder comprarlos.
Les dejo el script que utilizo en el primer caso:
Código PHP:
$fecha=$_POST["fecha"]; //Almacena una fecha con formato m/aa (6/09)
$mes date("m"); // mes con formato xx (06)
$anio date("y"); // año con formato xx (09)

//Le resto 1 y le vuelvo a sumar 1 al mes para que quede con 1 sólo dígito en el caso que tuviere un 0.
if($fecha == "".$mes-1+."/".$anio."") { 
$_SESSION["fecha"] = $fecha;
echo 
"<script language='JavaScript'>"
    
."location.href='admin.php?ir=selectraz';"
    
."</script>";
}
// Si la fecha corresponde al mes anterior
elseif($fecha == "".$mes-."/".$anio."") {
$_SESSION["fecha"] = $fecha;
//
 
}
else {
//
 

Espero que se entienda mi duda.
Saludos
  #2 (permalink)  
Antiguo 02/06/2009, 15:01
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: Problema con fecha

Sería esto

Código PHP:
if($fecha =="") {
$mes=$mes-1+."/".$anio
$_SESSION["fecha"] = $fecha;
echo 
"<script language='JavaScript'>"
    
."location.href='admin.php?ir=selectraz';"
    
."</script>";
}
// Si la fecha corresponde al mes anterior
elseif($fecha == "" ) {
$mes-=."/".$anio;
$_SESSION["fecha"] = $fecha;
//
 
}
else {
//
 

__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #3 (permalink)  
Antiguo 02/06/2009, 15:07
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Problema con fecha

Yo preferiria trabajar con timestamps, asi puedo cambiarle el formato de aqui para alla sin problema alguno.

Código PHP:
$fecha explode("/"$_POST['fecha']);

$timeFecha mktime(0,0,0,$fecha[0],1,$fecha[1]);
$timeActual mktime(0,0,0,date('n'), 1date('Y'));

if(
$timeFecha == $timeActual) {
  
//Es igual a la actual
} else {
  
//No se cumplio ninguna de las opciones

  #4 (permalink)  
Antiguo 02/06/2009, 15:09
Avatar de Vonlist  
Fecha de Ingreso: mayo-2009
Mensajes: 13
Antigüedad: 15 años
Puntos: 0
Increible la velocidad de respueta :D
Les cuento que probé inmediatamente los dos script y me funcionó a la perfección el primero.
Sólo un error de sintaxis en el 2º nada mas en date("n"). Debe ser reemplazado por date("m") y se soluciona, pero me da un valor de 1243825200 cuando ingreso la fecha 6/09 :S

Gracias y saludos !

Cita:
Iniciado por Vonlist Ver Mensaje
Increible la velocidad de respueta :D
Les cuento que probé inmediatamente los dos script y me funcionó a la perfección el primero.
Sólo un error de sintaxis en el 2º nada mas en date("n"). Debe ser reemplazado por date("m") y se soluciona, pero me da un valor de 1243825200 cuando ingreso la fecha 6/09 :S

Gracias y saludos !

Última edición por GatorV; 02/06/2009 a las 18:38
  #5 (permalink)  
Antiguo 02/06/2009, 15:35
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Problema con fecha

Porque mktime() crea un UNIX Timestamp. Un Unix Timestamp no es mas que la cantidad de segundos desde el 1ero de Enero de 1970 hasta X fecha.

Si quieres volver a darle formato, puedes usar date() pasandole como 2do parametro tu Unix Timestamp:

echo date("m/Y", $timeFecha);
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 10:24.