Visualizzazione risultati 1 fino 16 di 16

Discussione: Calcolo dell'etå

  1. #1
    Guest

    Predefinito Calcolo dell'etå

    Salve a tutti, avrei bisogno di un aiutino con un codice...
    nel mio sito ho bisogno di calcolare l'età anagrafica (precisa fino al giorno) partendo dal codice fiscale.....

    io sono riuscito ad ottenere la data di nascita in formato gg/mm/aaaa, ma adesso...dalla data come faccio ad ottenere l'età?

    codice sulla prima pagina:
    Codice:
    <script type="text/javascript">
    
    function getDataByCF(cf) {
    
    var tabellamesi = {
    "A" : "01",
    "B" : "02",
    "C" : "03",
    "D" : "04",
    "E" : "05",
    "H" : "06",
    "L" : "07",
    "M" : "08",
    "P" : "09",
    "R" : "10",
    "S" : "11",
    "T" : "12"
    };
    
    return cf.replace(/^(?:\w{6})(\d{2})(\w)(\d{2}).+$/, function(data, aa, mm, gg) {
    
    var anno = parseInt(aa, 10);
    var secolo = (anno < 9)? '20':'19';
    anno = [secolo, aa].join('');
    
    var giorno = parseInt(gg, 10);
    var sesso = (giorno > 31)? 'F' : 'M';
    if (sesso === 'F') giorno -= 40;
    
    var mese = mm.toUpperCase();
    mese = tabellamesi[mese];
    
    return [giorno, mese, anno].join("/");
    });
    
    
    };
    
    </script>
    Codice HTML:
    <form name="form" action="echo.php" method="post">
    
      <p>CF
      <input type="text" name="cf"
    onblur="document.getElementById('nato').value = getDataByCF(this.value);"
    onkeyup="this.value = this.value.toUpperCase();"/>
        
        Nato <input name="nato" type="text" id="nato" readonly="readonly"/>
      </p>
      <p>
        <input type="submit" name="submit" value="EFFETTUA IL LOGIN!" />
      </p>
    </form>
    CODICE DELLA SECONDA PAGINA (INTERROGAZIONE)
    Codice PHP:
    <?php

    session_start
    ();
    $codicefiscale=$_POST['cf'];
    $data_nascita=$_POST['nato'];

    echo
    $codicefiscale;
    echo
    "<br>";
    echo
    $data_nascita;
    ?>


    <?php

  2. #2
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    in PHP avendo la data del CF e la data odierna puoi fare:
    Codice PHP:
    <?php

    $mydate
    =getdate();
    $dataOdierna = $mydate[year]+$mydate[month]+$mydate[mday];
    $dataCF = "1994-01-01";

    $date1=date_create($dataOdierna);
    $date2=date_create($dataCF);
    $diff=date_diff($date1,$date2,true);

    echo
    "<br>anni ";
    echo
    $diff->y;

    echo
    "<br>mesi ";
    echo
    $diff->format("%m");

    echo
    "<br>giorni ";
    echo
    $diff->format("%d");

    ?>
    Ultima modifica di NLSweb : 10-09-2014 alle ore 17.45.30

  3. #3
    Guest

    Predefinito

    ho provato ma l'output è errato...
    data di nascita: 28/7/1996

    output:

    anni 20
    mesi 8
    giorni 9

  4. #4
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    Hai impostato la data nel formato
    Codice:
    $dataCF = "ANNO-MESE-GIORNO";

  5. #5
    Guest

    Predefinito

    e quindi? come devo modificarlo?

  6. #6
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    Quando estrapoli la data dal CF la assegni alla variabile PHP $dataCF nel formato da me indicato.

    Per esempio (riferendomi al post#3)
    Codice:
    $dataCF = "1996-07-28";
    ecco un DEMO
    Ultima modifica di NLSweb : 10-09-2014 alle ore 17.33.13

  7. #7
    Guest

    Predefinito

    si è già così....
    $dataCF = "1994-1-1";

  8. #8
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    il formato deve essere anno 4 cifre mese due cifre giorno due cifre , quindi 1994-01-01

    scusa ho visto adesso che nell'esempio php che ti avevo riportato non avevo scritto bene la data...

  9. #9
    Guest

    Predefinito

    continua a non funzionare =(

  10. #10
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    ? con il DEMO che ti ho postato a me funziona...

  11. #11
    Guest

    Predefinito

    la tua demo mi restituisce questo errore: Fatal error: Call to a member function format() on a non-object in /membri/nlsweb/esempi/datePHP.php on line 16

  12. #12
    Guest

    Predefinito

    a me la demo funziona.
    Se inserisco 1996-07-28 ricevo come risultato:
    anni 18
    mesi 1
    giorni 13

    Sei sicuro di inserire la data nel modo corretto?

  13. #13
    Guest

    Predefinito

    lol sbagliavo a scrivere scusa...
    quindi come devo fare sul mio codice?

    sei nato il 28 luglio?

  14. #14
    Guest

    Predefinito

    il mio problema è che....l'estrazione della data dal codice fiscale è con formato: gg/mm/aaaa....per lo script server aaaa/mm/gg.....come faccio ad invertirlo?

  15. #15
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    Ho creato anche un DEMO con JS , ma il conteggio non e' molto preciso e non ho ancora capito il perche'.. ci sto lavorando..

    comunque , questo e' il codice:
    Codice HTML:
    <!DOCTYPE html>
    <html>
    <head>
    <script>
    function calcolaETA() { 
        var annoCF = document.getElementById('anno').value;
        var meseCF = document.getElementById('mese').value;
        var giornoCF = document.getElementById('giorno').value;
        
        var dataCF = new Date(annoCF+","+meseCF+","+giornoCF);
        
        var millisecondi = Date.now() - dataCF.getTime();
        var eta = new Date(millisecondi);
        
        var anni = Math.abs(eta.getUTCFullYear() - 1970);
        var mesi = Math.abs(eta.getUTCMonth());
        var giorni = Math.abs(eta.getUTCDate());
        
        var risultato = "Anni: "+anni+" , Mesi: "+mesi+" , Giorni: "+giorni;
        
        document.getElementById("risultato").innerHTML = risultato;
        
    }
    </script>
    </head>
    <body>
    
    Inserisci la data di nascita
    
    Anno(AAAA):<input type="date" id="anno"/>
    Mese(MM):<input type="date" id="mese"/>
    Giorno(GG):<input type="date" id="giorno"/>
    <button onclick="calcolaETA()">Calcola</button>
    
    <div id="risultato"></div>
    
    </body>
    </html>

  16. #16
    Guest

    Predefinito

    sono riuscito grazie mille

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •