Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: calcolo età in giorni

  1. #1
    Utente di HTML.it L'avatar di Base
    Registrato dal
    Apr 2001
    Messaggi
    822

    calcolo età in giorni

    data una variabile $conv_datan (formato aaaa/mm/gg) dovrei calcorare l'età in giorni e non in anni, perchè con questo script devo calcorare successivamente se l'utente ha meno di 365*18 giorni o più di 365*40 giorni.
    help!

  2. #2

    Re: calcolo età in giorni

    Originariamente inviato da Base
    data una variabile $conv_datan (formato aaaa/mm/gg) dovrei calcorare l'età in giorni e non in anni, perchè con questo script devo calcorare successivamente se l'utente ha meno di 365*18 giorni o più di 365*40 giorni.
    help!
    Se usi mysql 4.1 c'e' una funzione per te... Se no... no.

    SELECT DATEDIFF(NOW(),'$conv_datan')

    rende il numero dei giorni tra ora e la data_nascita. Bisestili compresi.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Beh! dai, sei hai la 4.0 usa FROM_DAYS TO_DAYS

    http://forum.html.it/forum/showthrea...hreadid=459634

    parte terza....

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  4. #4
    Utente di HTML.it L'avatar di Base
    Registrato dal
    Apr 2001
    Messaggi
    822
    ciao piero.mac, ho mysql 4.0.22

    ho inizialmente provato una funzione che aveva postato non mi ricordo chi su questo forum... sarebbe questa:
    Codice PHP:
    function EtaByMysql($data) {
    $link mysql_connect();
    list(
    $giorno$mese$anno) = explode('/',$data);
    $res1mysql_query("select DATE_SUB(CURDATE(), INTERVAL '$giorno' DAY) as day");
    $new mysql_result($res1,0,"day");
    $res2mysql_query("select DATE_SUB('$new', INTERVAL '$anno-$mese' YEAR_MONTH) as new_data");
    list(
    $anno$mese$giorno) = explode('-'mysql_result($res2,0,'new_data'));
    $anno $anno 1// per eliminare gli zero davanti al numero

    if ($giorno >= 30 ) { $mese $mese 1$giorno ; }

    if (
    $mese >= 12) { $anno $anno 1$mese ; }
    echo 
    "data nascita $data
    "
    ;
    echo 
    "Anni $anno, Mesi $mese, Giorni " .$giorno*1;
    }

    EtaByMysql('21/07/1964');

    ?> 
    il prob è che nel mio file php, prima effettuo dei controlli (tra cui il calcolo dell'età con il relativo if 18<>40) e poi se passa questi controlli si connette al db e partono dei controlli anche sul db.
    se tutti questi controlli vanno a buon fine, l'utente puo' continuare con la registrazione.

    se metto questo script prima della connessione al db non funziona, se lo metto dopo si.

    per questo ho postato una nuova domanda... per evistare tutto sto discorso che non so neanche se venga capito...

  5. #5
    Utente di HTML.it L'avatar di Base
    Registrato dal
    Apr 2001
    Messaggi
    822
    oltre tutto la funz che ho postato non calcolava il numero dei giorni.

    per FROM DAY TO DAYS avrei bisogno di un esempio per favore.

    una curiosità
    per utilizzare una funzione mysql mi devo connettere ad un db?
    come funziona esattamente?

  6. #6
    Brr... sono in pausa caffe' e con il cervello che fibrilla di script. Scusa ma non ce la faccio a leggere il tuo (mio) script.

    Rispondo piuttosto alla tua prima domanda. Quanti giorni intercorrono tra due date:
    codice:
    SELECT TO_DAYS(NOW()) - TO_DAYS('$data_nascita') AS giorni
    in questo modo ottieni il numero dei giorni con mysql 4.0.22

    Quella funzione l'avevo postata io, mi ricordo il nome della funz.

    Serve ad avere anni, mesi, giorni e nada mas....

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    Originariamente inviato da Base
    una curiosità
    per utilizzare una funzione mysql mi devo connettere ad un db?
    come funziona esattamente?
    Non serve un db, basta una connessione qualunque. per estrarre il dato usa il solito mysql_fetch_row...

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  8. #8
    Utente di HTML.it L'avatar di Base
    Registrato dal
    Apr 2001
    Messaggi
    822
    ho provato così:
    Codice PHP:
    $ric_eta mysql_query("SELECT TO_DAYS(NOW()) - TO_DAYS('$conv_datan') AS giorni")
        or die(
    "Errore: " mysql_error());
    $etasql mysql_fetch_row($ric_eta);
    echo 
    "$etasql"
    mi da come risultato "array" dove sbaglio?

  9. #9
    Utente di HTML.it L'avatar di Base
    Registrato dal
    Apr 2001
    Messaggi
    822
    ho risolto:
    Codice PHP:
    $ric_eta mysql_query("SELECT TO_DAYS(NOW()) - TO_DAYS('$conv_datan') AS giorni")
        or die(
    "Errore: " mysql_error());
    $etasql mysql_fetch_array($ric_eta);
    $giorni $etasql['giorni'];
    echo 
    "$giorni"
    se viene inserita la data: 1977-07-22
    mi restituisce: 10036

    dovrebbe essere giusto, è la mia data di nascita e dividendo 10036 per 365 ottengo 27,49... ho 27 anni effettivamente

    chi mi da conferma per favor?

    per piero.mac: ho usato mysql_fetch_array() tu dicevi mysql_fetch_row() ci sono arrivato comunque o è un errore?

    altra dom: come faccio ora a sapere con sicurezza quanti giorni sono 18 anni? 365*18 puo' essere giusto? e i bisestili?
    che casino

  10. #10
    Utente di HTML.it L'avatar di Teuzzo
    Registrato dal
    Mar 2002
    Messaggi
    969
    Solo col php:

    $data="2005/01/05";
    $data_array=explode("/",$data);
    $secondi_eta=time()-mktime(0,0,0,$data_array[1],$data_array[2],$data_array[0]);
    $giorni_eta=$secondi_eta/60/60/24;
    print $giorni_eta;

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.