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. Calcolo anno tra 2 date
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • A
      alex.2019 User Attivo • ultima modifica di

      Calcolo anno tra 2 date

      Salve a tutti,

      ho un codice adattato preso da un altro post in cui mi ha fornito la soluzione altraSoluzione e Ultima,
      quelloche vorrei ottenere e' il tempo trascorso in anni tra la datia iniziale e oggi
      esempio:

      Start: 2010 ------------> ***campo(start year(4) ***
      today: 2019

      9 anni in totale

      ecco il codice, ma non funziona, mi restituisce errore

      Catchable fatal error: Object of class DateInterval could not be converted to string in W:\domains\localhost\Cinema\cinema.php on line **323

      line 323 e' questa

      **[PHP]<?php echo $diff; ?>[/PHP]

      [PHP]<?php // code calcolo eta' by altraSoluzione by Ultima from forum GT

      $start = $row['start'];

      $dateOfStart = $start;
      $today = date("Y-m-d");
      $diff = date_diff(date_create($dateOfStart), date_create($today));

      ?>[/PHP]

      [PHP]<?php echo $diff; ?>[/PHP]

      grazie

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • C
        chiabgigi User • ultima modifica di
        $diff = abs($date2 - $date1);
        
        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • A
          alex.2019 User Attivo • ultima modifica di

          @chiabgigi said:

          $diff = abs($date2 - $date1);
          

          🙂 grazie chiabgigi

          [PHP]echo $diff = abs ($dateOfStart - $today ) . '&nbsp' . Anni .'&nbsp' . in .'&nbsp' .totale .'&nbsp''';[/PHP]

          mi restituisce quello che volevo

          mi chiedevo se era possibile visualizzare l'anno in modo dinamico

          esempio:

          1 Anno in totale

          2 Anni in totale

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • C
            chiabgigi User • ultima modifica di

            https://www.geeksforgeeks.org/how-to-calculate-the-difference-between-two-dates-in-php/

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • A
              alex.2019 User Attivo • ultima modifica di

              @Alex_2019 said:

              🙂 grazie chiabgigi

              [PHP]echo $diff = abs ($dateOfStart - $today ) . '&nbsp' . Anni .'&nbsp' . in .'&nbsp' .totale .'&nbsp''';[/PHP]

              mi restituisce quello che volevo

              mi chiedevo se era possibile visualizzare l'anno in modo dinamico

              esempio:

              1 Anno in totale

              2 Anni in totale

              ho risolto con il tuo codice, io chiedevo un'altra cosa aggiuntiva.

              Se gli anni sono uno visualizzare l'etichetta Anno, se piu' di uno visualizzare Anni

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • C
                chiabgigi User • ultima modifica di

                prova ad adattare questo al tuo codice (io nn posso testarlo)

                $daysleft = $date2->diff($date1)->format('%a');
                echo $daysleft.' '.($daysleft == 1 ? 'day' : 'days').' remaining';
                
                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • A
                  alex.2019 User Attivo • ultima modifica di

                  ho adattato questo, ma non va 😞

                  [PHP]
                  $start = $row['start'];

                  $dateOfStart = $start;
                  $today = date("Y-m-d");

                  $daysleft = $dateOfStart->diff($today)->format('%a'); echo $daysleft.' '.($daysleft ==1?'Anno':'Anni').' remaining';?>

                  [/PHP]

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • C
                    chiabgigi User • ultima modifica di
                    $diff = abs($dateOfStart - $today);
                    
                    $a=explode(' ',$diff);
                    **if**($a0]>0){
                        $y=$a0]."  anni  ";
                    }**else**{$y="  anno";}
                    **echo **$y;
                    
                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • A
                      alex.2019 User Attivo • ultima modifica di

                      :bho:non funziona
                      visualizza sempre Anni

                      [PHP]

                      $start = $row['start'];

                      $dateOfStart = $start;
                      $today = date("Y-m-d");
                      $diff = abs($dateOfStart - $today);

                      $a=explode(' ',$diff);
                      if($a[0]>0){
                      $y=$a[0]." anni ";
                      }else{$y=" anno";}
                      echo $y;

                      [/PHP]

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      • C
                        chiabgigi User • ultima modifica di
                        $diff = abs($dateOfStart - $today);
                        
                        $a=explode(' ',$diff);
                        **if**($a0]>1){
                            $y=$a0]."  anni  ";
                        }**else**{$y=$diff."  anno";}
                        **echo **$y;
                        
                        0 Miglior Risposta Ringrazia Cita Rispondi

                          1 Risposta Ultima Risposta
                        • A
                          alex.2019 User Attivo • ultima modifica di

                          chiabgigi ciao,
                          perfetto, funziona adesso 🙂

                          [PHP]<?php // code calcolo anno code by chiabgigi from forum GT

                          $start = $row['start'];

                          $dateOfStart = $start;
                          $today = date("Y-m-d");
                          $diff = abs($dateOfStart - $today);

                          $a=explode(' ',$diff);
                          if($a[0]>1){
                          $y=$a[0]." anni ";
                          }else{$y=$diff." anno";}

                          echo '<font color="blue">'. $y . '&nbsp' . nel .'&nbsp'. Cinema . '</font>';

                          ?>
                          [/PHP]

                          mi sono accorto che ho commesso un errore, questo codice serve per calcolare quanto anni l'attore ha lavorato nel cinema, questo va bene se ancora attivo, ma io
                          ho inserito un altro campo per segnalare la fine carriera, questo:
                          **
                          end** --------------> year(4)

                          si potrebbe fare che se e' vuoto il campo end continua il conteggio con la l'anno attuale (today), ma se e' compilato conteggiare gli anni trascorsi tra start e **end

                          riepilogo campi:

                          start --------------> year(4)

                          end **--------------> year(4)

                          qui un esempio, dovrebbe calcolarmi 48 anni e non 51

                          image

                          grazie ancora

                          0 Miglior Risposta Ringrazia Cita Rispondi

                            1 Risposta Ultima Risposta
                          • C
                            chiabgigi User • ultima modifica di
                            
                            $start_date = date_create("1968-01-01");
                            $end_date = date_create("2016-01-01");
                            
                            $diff = date_diff($start_date,$end_date);
                            **echo **"Difference between two dates: ".$diff->format("%y"). "years";
                            
                            /* oppure */
                            
                            
                            **echo **"Difference: " .$diff->y . " years, <br>" . $diff->m . " months, <br>" . $diff->d . " days.";
                            
                            
                            

                            Difference between two dates: 48years
                            Difference:
                            48 years,
                            0 months,
                            0 days.

                            0 Miglior Risposta Ringrazia Cita Rispondi

                              1 Risposta Ultima Risposta
                            • A
                              alex.2019 User Attivo • ultima modifica di

                              ciao chiabgigi, a questo ci ero arrivato, pero' bisogna integrare il codice sopra (con today, anni, anno, start) con questo, ho provato ma si vede che sono negato

                              0 Miglior Risposta Ringrazia Cita Rispondi

                                1 Risposta Ultima Risposta
                              • C
                                chiabgigi User • ultima modifica di

                                hai scritto

                                **riepilogo campi:

                                start --------------> year(4)

                                end **--------------> year(4)

                                qui un esempio, dovrebbe calcolarmi 48 anni e non 51

                                Qui implica che hai un inizio e una fine carriera.

                                poi

                                bisogna integrare il codice sopra (con today, anni, anno, start)

                                se metti today (oggi) è inevitabile che ti conteggia tutto
                                è logico start/end

                                
                                **<?php
                                **$row = date('1968-02-02');
                                $start = $row;
                                
                                $dateOfStart = $start;
                                $today = date("2016-02-02");
                                
                                $diff = abs($dateOfStart - $today);
                                
                                $a=explode(' ',$diff);
                                **if**($a0]>1){
                                    $y=$a0]."  anni  ";
                                }**else
                                ****  **{$y=$diff."  anno";
                                }
                                
                                **echo **'<div style="color:#0000FF;">'.$y.' nel cinema.</div>';
                                **?>****
                                **
                                

                                48 anni nel cinema.

                                0 Miglior Risposta Ringrazia Cita Rispondi

                                  1 Risposta Ultima Risposta
                                • A
                                  alex.2019 User Attivo • ultima modifica di

                                  questo codice va bene se sono compilati i campi start ed end, ma nel mio database ci sono moltissimi record (il 90%) in cui e' presente solo **start **(integrato con l'anno attuale, today)

                                  0 Miglior Risposta Ringrazia Cita Rispondi

                                    1 Risposta Ultima Risposta
                                  • A
                                    alex.2019 User Attivo • ultima modifica di

                                    risolto 🙂
                                    questo funziona benissimo

                                    [PHP]
                                    <?php
                                    $start = $row['start'];
                                    $end = !empty($row['end']) ? $row['end'] : date('Y');
                                    $diff = $end - $start;
                                    echo '<font color="blue">'. $diff . ' Year' . ($diff > 1 ? 's' : '') . '&nbsp' . In . '&nbsp' . The . '&nbsp' . Business . '</font>';
                                    ?>

                                    [/PHP]

                                    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