Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2016
    Messaggi
    10

    Problemi con la data in PHP

    Ciao a tutti,

    Ho reperito dalla rete una classe di controllo sul codice fiscale, e funziona molto bene, addirittura restituisce la data di nascita, che in effetti è quello che mi serviva, il problema dove nasce, che restituisce la data di nascita solo a 2 cifre, e essendo che il codice fiscal nel campo della data di nascita per le persone che sono nate dal 2000 in poi restituisce 00 oppure 01 e via dicendo, mi servirebbe che qualcuno mi aiutasse in una funzione in php che mi faccia restituire l'anno a 4 cifre tenendo conto che 00 è l'anno 2000 e non 1970

    Spero di essere stato chiaro,

    Qualcuno mi puo aiutare??

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Beh, non è per niente semplice, non dal punto di vista tecnico perché non ci vuole niente, ma dal punto di vista logico.
    Bisogna fare qualche assunzione, può capitarti qualche ultracentenario? Anche nel caso dovessi averli, sarà un'eventualità remota, ma comunque possibile e devi tenerne conti.
    Se ti ritrovassi ad avere a che fare per esempio con l'anno 16 è 1916 o 2016? Avresti un'ambiguità non risolvibile in modo automatico.

    In caso non siano previsti ultracentenari ti basta fare
    ultime 2 cifre anno corrente - ultime 2 cifre anno trovato
    se il numero è >= 0 allora aggiungi le cifre 20 all'inizio, se è < 0 ci metti 19

    in pratica:
    se hai 04 fai
    17 - 04 = 13 che è > 0 quindi aggiungi 20 ed hai 2004

    se hai 85 fai
    17 - 85 = -68 che è < 0 quindi aggiungi 19 ed hai 1985

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2016
    Messaggi
    10
    Grazie milleAlhazred

    Grazie alla tua dritta ho creato questo scritp che funziona benissimo, magari se lo si può miglirare fatemi sapere


    // Mario Rossi, nato il 23/09/1981
    $cf = "RSSMRA81P23G097T";
    $dataA = substr($cf,6,2);

    function anno4($annoN){

    $AnnoOggi = date('y');
    $diff = $AnnoOggi - $annoN;

    if ($diff >0) {
    $annoN = "20".$annoN;
    }
    if ($diff <0) {
    $annoN = "19".$annoN;
    }
    return $annoN;
    }

    echo anno4($dataA);

    Grazie

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    nell'if metti >= altrimenti se ti arriva un 2017 ti lascia 17.

Tag per questa discussione

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 © 2024 vBulletin Solutions, Inc. All rights reserved.