Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. Categorie
    3. Coding e Sistemistica
    4. Coding
    5. Calcolare la differenza fra due date
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • C
      carlitos1982 User Attivo • ultima modifica di

      OK,ho usato questa soluzione
      [PHP]
      $differenza=intval((time() - mktime(0,0,0,$str_giorno,$str_mese,$str_anno))/(31536000));
      [/PHP]
      mi da 24 come risultato...invece dovrebbe essere 26...eppure i dati che mi ricavo sono corretti....ho controllato
      $str_giorno=30
      $str_mese=03
      $str_anno=1982

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • M
        magicale User Attivo • ultima modifica di

        Hai ragione... colpa mia che nella fretta ho messo i dati secondo l'ordine "europeo", mentre i parametri di mktime sono
        (ore, minuti, secondi, mese, giorno, anno),
        secondo la scrittura "americana" che segue il formato mm-gg-yyyy

        [PHP]
        $differenza=intval((time() - mktime(0,0,0,$str_mese,$str_giorno,$str_anno))/(31536000));
        [/PHP]

        Alessandro

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • C
          carlitos1982 User Attivo • ultima modifica di

          Grazie mille,ora funziona benissimo;)

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • C
            carlitos1982 User Attivo • ultima modifica di

            Sorge un problemino,oggi 23 marzo nell èta dell utente mi segna già 27,l utente compie i 27 anni il 30 marzo...io vorrei che 27 me lo segnasse appunto il giorno del compleanno...e non prima:?credo sia dovuto alla funzione intval il problemino che cerca comunque di dare un valore intero al risultato ma non ne sarei sicuro visto che togliendo intval alla stringa mi da come risultato 27.0004106418 eppure la data di nascita dell utente è 30-03-1982 ....come potrei risolvere la cosa?

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • M
              magicale User Attivo • ultima modifica di

              Ciao,
              il problema non è dovuto ad intval, ma agli anni bisestili per i quali non vale la corrispondenza:

              1 anno = 31536000 secondi

              Alessandro

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • C
                carlitos1982 User Attivo • ultima modifica di

                Quindi non c'è modo di risolvere...giusto?

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • M
                  magicale User Attivo • ultima modifica di

                  C'è sempre un modo di risolvere:
                  [PHP]
                  $eta = date("Y",time())-$str_anno-(date("md",time())<($str_mese.$str_giorno));
                  [/PHP]

                  Alessandro

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • C
                    carlitos1982 User Attivo • ultima modifica di

                    Grazie!
                    Sei un mito;)

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • C
                      carlitos1982 User Attivo • ultima modifica di

                      Ciao Magicale,
                      ho notato questo problema....praticamente ho un utente come data di
                      nascita uguale a 23 04 1971...perchè nel calcolo degli anni mi da un -1 invece dell ètà esatta dell utente?

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      • M
                        magicale User Attivo • ultima modifica di

                        Ciao,
                        se provi così:
                        [PHP]
                        $str_giorno="23";
                        $str_mese="04";
                        $str_anno="1971";
                        $eta = date("Y",time())-$str_anno-(date("md",time())<($str_mese.$str_giorno));
                        [/PHP]
                        Il risultato viene corretto. L'errore potrebbe essere nei dati, verifica che siano recuperati correttamente.

                        Alessandro

                        0 Miglior Risposta Ringrazia Cita Rispondi

                          1 Risposta Ultima Risposta
                        Caricamento altri post
                        Rispondi
                        • Topic risposta
                        Effettua l'accesso per rispondere
                        • Da Vecchi a Nuovi
                        • Da Nuovi a Vecchi
                        • Più Voti