Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-01-2014
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 547
Poder: 17
jhonalone Va por buen camino
Problemas comparando fechas

Hola, amigos.
Tengo un problema con un script.
Quisiera averiguar si un visitante es mayor de edad. Para eso, comparo la fecha obtenida de un formulario HTML y la obtenida con getdate(del servidor).
El problema que tengo es que siendo ambas fechas el mismo mes (enero, por ejemplo) el servidor considera menor la fecha obtenida con getdate() que la obtenida desde el formulario.
A continuación os dejo la parte del script que hace esta tarea, por si alguien puede echarme una mano.

<?php


$dia = $_POST['day'];
$mes = $_POST['month'];
$anio = $_POST['year'];

$control = $_POST["Control1"];

setlocale (LC_TIME, "es_ES");

$hoy = getdate();
$AnioActual = $hoy[year];
$mesActual = $hoy[mon];
$diaActual = $hoy[mday];


if ($AnioActual-$anio <=18) // Diferencia entre años MENOR O IGUAL que 18
{
if ($AnioActual-$anio <18) // diferencia entre años MENOR que 18
{
$control = "Error en la edad";
?>
<script type="text/javascript">
<!--
alert('Según la fecha del sistema Vd. es menor de edad año.');
//-->
</script>
<?php
} else // diferencia entre años IGUAL a 18
{
if ($MesActual <= $mes) // mes actual MENOR O IGUAL que cumpleaños
{
if ($MesActual < $mes) //mes actual MENOR que cumpleaños (no ha cumplido 18)
{echo($mesActual. "Actual" .$mes. "mes" .$anio. "Año" .$AnioActual. "AñoActual");
$control = "Error en la edad";//AQUI ES DONDE TENGO EL PROBLEMA, PUES CONSIDERA MENOR EL MES ACTUAL AUNQUE SEAN IGUALES (LO COMPRUEBO EN LA PANTALLA CON ECHO)

?>
<script type="text/javascript">
<!--
alert(' año igual mes actual menor.');
//-->
</script>
<?php
} else // mes actual y año actual igual que cumpleaños (Decide el dia del mes)
{
if ($DiaActual < $dia) // todavia no ha cumplido los 18
{ echo($mesActual. "Actual" .$mes. "mes" .$anio. "Año" .$AnioActual. "AñoActual");
$control = "Error en la edad";
?>
<script type="text/javascript">
<!--
alert(' año igual mes igual dia actual antes del cumpleaños.');
//-->
</script>
<?php
}
}
}
}
};

// Hay otras instrucciones que vienen al caso......................................
?>

Agradezco de antemano cualquier ayuda. Gracias.
Responder Con Cita
  #2  
Antiguo 07-01-2014
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 914
Poder: 23
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Creo que el problema es que PHP es sensible a minusculas y mayusculas para nombres de variables

Código PHP:
<?php

$dia 
$_POST['day'];
$mes $_POST['month'];
$anio $_POST['year'];

$control $_POST["Control1"];

setlocale (LC_TIME"es_ES");

$hoy getdate();
$AnioActual $hoy[year];
$mesActual $hoy[mon];
$diaActual $hoy[mday];


if (
$AnioActual-$anio <=18// Diferencia entre años MENOR O IGUAL que 18
{
   if (
$AnioActual-$anio <18// diferencia entre años MENOR que 18
   
{
      
$control "Error en la edad";
?>
      <script type="text/javascript">
      <!--
      alert('Según la fecha del sistema Vd. es menor de edad año.');
      //-->
      </script>
<?php
   
} else // diferencia entre años IGUAL a 18
   
{
      if (
$MesActual <= $mes// mes actual MENOR O IGUAL que cumpleaños
      
{
         if (
$MesActual $mes//mes actual MENOR que cumpleaños (no ha cumplido 18)
         
{
            echo(
$mesActual"Actual" .$mes"mes" .$anio"Año" .$AnioActual"AñoActual");
            
$control "Error en la edad";//AQUI ES DONDE TENGO EL PROBLEMA, PUES CONSIDERA MENOR EL MES ACTUAL AUNQUE SEAN IGUALES (LO COMPRUEBO EN LA PANTALLA CON ECHO)

?>
         <script type="text/javascript">
         <!--
         alert(' año igual mes actual menor.');
         //-->
         </script>
<?php
         
} else // mes actual y año actual igual que cumpleaños (Decide el dia del mes)
         
{
// 
// Aquí estaría el problema...$DiaActual<>$diaActual
//      
            //if ($DiaActual < $dia) 
            
if ($diaActual $dia// todavia no ha cumplido los 18
            
{
               echo(
$mesActual"Actual" .$mes"mes" .$anio"Año" .$AnioActual"AñoActual");
               
$control "Error en la edad";
?>
              <script type="text/javascript">
              <!--
              alert(' año igual mes igual dia actual antes del cumpleaños.');
              //-->
              </script>
<?php
            
}
         }
      }
   }
};

// Hay otras instrucciones que vienen al caso......................................
?>
Saludos cordiales
Responder Con Cita
  #3  
Antiguo 07-01-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola jhonalone.

Por favor no olvides el uso de las etiquetas cuando incluyas código. En el caso de PHP es: [php] tu_codigo [/php]

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #4  
Antiguo 07-01-2014
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 547
Poder: 17
jhonalone Va por buen camino
Gracias a ambos por ayudarme.
A cloayza por haberme abierto los ojos. ¡Cómo he podido ser tan BUUUUURRO!
A ecfisa por decirme cómo se pone el código php en los posts. Bien sabe Dios que lo he estado buscando en los iconitos de arriba a derecha, pero nunca había posteado nada en php.

¡¡MUCHAS GRACIAS A AMBOS!!
Saludos.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Comparando momentos jorgegetafe Varios 1 04-11-2007 15:23:11
Comparando fechas Genner Varios 1 04-05-2006 19:19:31
Comparando valores nulos pyanqn Conexión con bases de datos 9 15-11-2005 21:09:32
DateTimePicker: problema comparando fechas Tomás OOP 7 06-09-2004 12:22:13
hacer una consulta comparando un campo hora. soyhugo SQL 2 16-04-2004 19:14:30


La franja horaria es GMT +2. Ahora son las 18:04:47.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi