Foros del Web » Programando para Internet » PHP »

Comparar fechas

Estas en el tema de Comparar fechas en el foro de PHP en Foros del Web. Tengo un problema para comparar 2 fechas. Bueno, mi base de datos va por archivos txt, asi que cuando un user se registra se le ...
  #1 (permalink)  
Antiguo 17/01/2010, 10:44
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 3 meses
Puntos: 9
Comparar fechas

Tengo un problema para comparar 2 fechas.

Bueno, mi base de datos va por archivos txt, asi que cuando un user se registra se le crea una variable asi:

$nuevo .="\$lastConect = \"".time()."\";\n";

de modo que queda registrada la fecha del registro.


Cuando se conecta se deve comparar si la fecha registrada y la fecha actual son iguales, no resta un valor:




if($lastConect <= time()){
$puntosMas = $puntos+100;
$puntosMenos = $diaspremium-1;
}


y luego en los datos es:


$nuevo .="\$lastConect= \"$lastConect\";\n";


Ahi lo que tenemos es,, que si en los datos del user $lastconect no es la misma que la fecha de hoy; Le suma 100 puntos y le resta 1 dia de premium, el problema que tengo es que lo hace siempre que se loguea, aunque sea la misma fecha..


Alguien sabe que está mal?

Por si quieren revisar:

Register.php
Código PHP:
<script>
function revisar() {
if(formulario.cnnick.value.length < 3) { alert('El nick debe contener por lo mínimo 3 caractéres') ; return false ; }
if(formulario.cncontrasena.value.length < 5) { alert('La contraseña debe contener por lo mínimo 5 caractéres') ; return false ; }
if(formulario.cnemail.value.length == 0) { alert('Debes poner un email válido') ; return false ; }
}
</script>
<div id="box-center">
    <div id="top" class="white">Regístrate</div>
    <div id="middle">
        
      
        <?
if($registrar) {
function 
quitar($texto) {
$texto trim($texto) ;
$texto htmlspecialchars($texto) ;
return 
$texto ;
}
$cnnick quitar($cnnick) ;
$cnemailquitar($cnemail) ;
// Comprobar que el usuario existe en la base de datos
if(!file_exists("usuarios/")) { mkdir("usuarios/"0777); }
if(
file_exists("usuarios/$cnnick.php")) {
echo 
"<div id=infobox-center class=red>
            <div id=top></div>
            <div id=text>Ya existe un usuario con ese nick o email en la base de datos. Haz click <a href=javascript:history.back()>aquí</a> para regresar.</div>
            <div id=bottom></div>
        </div>" 
;
}
else {
$cnfecha time() ;
$cncontrasena md5($cncontrasena) ;
$cnip $REMOTE_ADDR ;

$nuevo .= "<"."?\n";
$nuevo .="\$nick = \"$cnnick\";\n";
$nuevo .="\$contrasena = \"$cncontrasena\";\n";
$nuevo .="\$email = \"$cnemail\";\n";
$nuevo .="\$fecha = \"$cnfecha\";\n";
$nuevo .="\$ip = \"$cnip\";\n";
$nuevo .="\$sexo = \"\";\n";
$nuevo .="\$pais = \"es\";\n";
$nuevo .="\$edad = \"\";\n";
$nuevo .="\$descripcion = \"\";\n";
$nuevo .="\$puntos = \"0\";\n";
$nuevo .="\$lastConect = \"".time()."\";\n";
$nuevo .="\$nivel = \"0\";\n";
$nuevo .="\$color = \"gray\";\n";
$nuevo .="\$premium = \"0\";\n";
$nuevo .="\$fechapremium = \"\";\n";
$nuevo .="\$diaspremium = \"0\";\n";
$nuevo .="\$avatar = \"/images/noAvatar.jpg\";\n";
$nuevo .= "?".">";

$crea fopen("usuarios/$cnnick.php","w");
fputs($crea,$nuevo);
fclose($crea);
echo 
"<div id=infobox-center class=green>
            <div id=top></div>
            <div id=text>¡Bienvenid@ a GameShoot <strong>"
.$_POST["cnnick"]."</strong>! Te has registrado exitosamente.<br>¿A qué esperas para iniciar sesión?</div>
            <div id=bottom></div>
        </div>"
;
}
}
else {
?>


Entrar.php
Código PHP:
<?
if($entrar) {
function 
quitar($texto) {
$texto trim($texto) ;
$texto htmlspecialchars($texto) ;
return 
$texto ;
}
$cnnick quitar($cnnick) ;
$cnpass quitar($cnpass) ;

if(
file_exists("usuarios/$cnnick.php")) {
require (
"usuarios/$cnnick.php");
// Comprobamos que la contraseña sea igual a la del usuario
if($contrasena == md5($cnpass)) {
if(
$lastConect <= time()){
$puntosMas $puntos+100;
$puntosMenos $diaspremium-1;
}
else{
$lastConect2=$lastConect;
}
$nuevo .= "<"."?\n";
$nuevo .="\$nick = \"$nick\";\n";
$nuevo .="\$contrasena = \"$contrasena\";\n";
$nuevo .="\$email = \"$email\";\n";
$nuevo .="\$fecha = \"$fecha\";\n";
$nuevo .="\$ip = \"$ip\";\n";
$nuevo .="\$sexo = \"$sexo\";\n";
$nuevo .="\$pais = \"$pais\";\n";
$nuevo .="\$edad = \"$edad\";\n";
$nuevo .="\$descripcion = \"$descripcion\";\n";
$nuevo .="\$puntos = \"$puntosMas\";\n";
$nuevo .="\$lastConect= \"$lastConect\";\n";
$nuevo .="\$nivel = \"$nivel\";\n";
$nuevo .="\$color = \"$color\";\n";
$nuevo .="\$premium = \"$premium\";\n";
$nuevo .="\$fechapremium = \"$fechapremium\";\n";
$nuevo .="\$diaspremium = \"$puntosMenos\";\n";
$nuevo .="\$avatar = \"$avatar\";\n";
$nuevo .= "?".">";

 
$crea fopen("usuarios/$cnnick.php","w");
fputs($crea,$nuevo);
fclose($crea);

setcookie("ucnnick",$cnnick,time()+7776000) ;
setcookie("ucnpass",$cnpass,time()+7776000) ;
// Enviamos al usuario a la pagina principal
header("location: segurity_check.php") ;
}
else {
header("Location: /?error=1");
}
}
else {
header("Location: /?error=2");
}
}
else {
header("Location: /?error=3");
}
?>
  #2 (permalink)  
Antiguo 17/01/2010, 10:58
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Comparar fechas

lo que sucede es que time() siempre es la fecha actual...

y bueno, si comparas algún dato anterior siempre será menor a la fecha actual...

a mi me suena bastante lógico... lo único que podrías hacer es hacer una diferencia, osea, restas time() - $lastConect y el resultado son los segundos que hay entre ambas fechas...

así de sencillo... (:
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 17/01/2010, 13:56
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 3 meses
Puntos: 9
Respuesta: Comparar fechas

y luego que hago?

Etiquetas: comparar, 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 13:25.