Confronto tra date

Caterina Bernardoni

Nuovo Utente
14 Gen 2013
1
0
0
Salve a tutti, ammetto di non essere una programmatrice professionista, quindi abbiate pazienza :)

Sto cercando di creare una funzione che mi permetta di fare un controllo su una data.
Avendo la data d'iscrizione, devo controllare se siano passati 15 gg da questa e se sia stato compilato o meno un modulo.
La tabella è così strutturata:
nome_utente
data_iscrizione
check_modulo (0 o 1, 1 se è stato compilato)

Ringrazio fin da subito chi mi darà qualche dritta a riguardo.
 
Ti faccio un esempio che puoi applicare dove ti servirà

PHP:
//eseguo la query, $utente è un esempio, vai a mettere una variabile esterna o pubblica rendendola eventualmente sicura
$query = $mysqli->query("SELECT data_iscrizione FROM tabella WHERE check_modulo=1 AND nome_utente='$utente'") or die($mysqli->error);

if($query->num_rows==1){ //controllo che abbia trovato l'user col modulo compilato
    $data = $query->fetch_array()[0];
 //se hai una versione del php inferiore alla 5.4 usa $data[0] nel strtotime
//controllo che sia maggiore o uguale a 15 giorni la differenza fra l'attuale timestamp e quello ricavato
    if(time()-strtotime($data)>=(86400*15)) 
        echo "L'user ha superato l'iscrizione da 15 giorni e ha completato il modulo";
    else
        echo "L'user non è registrato da 15 giorni";
}else echo "L'user non ha ancora compilato il modulo";
 
Ultima modifica:
Una possibile soluzione tutta in SQL
ammesso che la data memorizzata sia in formato TIMESTAMP, DATE o DATETIME
Codice:
SELECT * FROM utenti
WHERE DATEDIFF(curdate(),data_iscrizione) > 15 && check_modulo = 0
avrai una lista di tutti gli utenti registrati da piu di 15 giorni che non hanno compilato il modulo
 

Discussioni simili