+ Rispondi alla Discussione
Risultati da 1 a 16 di 16

Calcolo anno tra 2 date

Ultimo Messaggio di Alex_2019 il:
  1. #1
    User L'avatar di Alex_2019
    Data Registrazione
    Jul 2019
    Località
    Hell
    Messaggi
    110

    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

    Codice PHP:
    <?php echo $diff?>

    Codice 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));
     
    ?>
    Codice PHP:
    <?php echo $diff?>
    grazie

  2. #2
    User
    Data Registrazione
    Sep 2008
    Messaggi
    48
    Codice:
    $diff = abs($date2 - $date1);
    Ultima modifica di chiabgigi; 09-09-19 alle 10:38

  3. #3
    User L'avatar di Alex_2019
    Data Registrazione
    Jul 2019
    Località
    Hell
    Messaggi
    110
    Citazione Originariamente Scritto da chiabgigi Visualizza Messaggio
    Codice:
    $diff = abs($date2 - $date1);
    grazie chiabgigi

    Codice PHP:
    echo $diff abs ($dateOfStart $today ) . '&nbsp' Anni .'&nbsp' in .'&nbsp' .totale .'&nbsp'''
    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

  4. #4
    User
    Data Registrazione
    Sep 2008
    Messaggi
    48

  5. #5
    User L'avatar di Alex_2019
    Data Registrazione
    Jul 2019
    Località
    Hell
    Messaggi
    110
    Citazione Originariamente Scritto da Alex_2019 Visualizza Messaggio
    grazie chiabgigi

    Codice PHP:
    echo $diff abs ($dateOfStart $today ) . '&nbsp' Anni .'&nbsp' in .'&nbsp' .totale .'&nbsp'''
    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

  6. #6
    User
    Data Registrazione
    Sep 2008
    Messaggi
    48
    prova ad adattare questo al tuo codice (io nn posso testarlo)
    Codice:
    $daysleft = $date2->diff($date1)->format('%a');
    echo $daysleft.' '.($daysleft ==1?'day':'days').' remaining';

  7. #7
    User L'avatar di Alex_2019
    Data Registrazione
    Jul 2019
    Località
    Hell
    Messaggi
    110
    ho adattato questo, ma non va

    Codice PHP:
    $start $row['start'];

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


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


  8. #8
    User
    Data Registrazione
    Sep 2008
    Messaggi
    48
    Codice:
    $diff = abs($dateOfStart - $today);
    
    $a=explode(' ',$diff);
    if($a[0]>0){
        $y=$a[0]."  anni  ";
    }else{$y="  anno";}
    echo $y;

  9. #9
    User L'avatar di Alex_2019
    Data Registrazione
    Jul 2019
    Località
    Hell
    Messaggi
    110
    non funziona
    visualizza sempre Anni

    Codice 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

  10. #10
    User
    Data Registrazione
    Sep 2008
    Messaggi
    48
    Codice:
    $diff = abs($dateOfStart - $today);
    
    $a=explode(' ',$diff);
    if($a[0]>1){
        $y=$a[0]."  anni  ";
    }else{$y=$diff."  anno";}
    echo $y;

  11. #11
    User L'avatar di Alex_2019
    Data Registrazione
    Jul 2019
    Località
    Hell
    Messaggi
    110
    chiabgigi ciao,
    perfetto, funziona adesso

    Codice 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>';
     
    ?>
    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



    grazie ancora

  12. #12
    User
    Data Registrazione
    Sep 2008
    Messaggi
    48
    Codice:
    $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.
    Ultima modifica di chiabgigi; 10-09-19 alle 10:00

  13. #13
    User L'avatar di Alex_2019
    Data Registrazione
    Jul 2019
    Località
    Hell
    Messaggi
    110
    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

  14. #14
    User
    Data Registrazione
    Sep 2008
    Messaggi
    48
    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
    Codice:
    <?php
    $row = date('1968-02-02');
    $start = $row;
    
    $dateOfStart = $start;
    $today = date("2016-02-02");
    
    $diff = abs($dateOfStart - $today);
    
    $a=explode(' ',$diff);
    if($a[0]>1){
        $y=$a[0]."  anni  ";
    }else
    {$y=$diff."  anno";
    }
    
    echo '<div style="color:#0000FF;">'.$y.' nel cinema.</div>';
    ?>
    
    48 anni nel cinema.

  15. #15
    User L'avatar di Alex_2019
    Data Registrazione
    Jul 2019
    Località
    Hell
    Messaggi
    110
    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)

  16. #16
    User L'avatar di Alex_2019
    Data Registrazione
    Jul 2019
    Località
    Hell
    Messaggi
    110
    risolto
    questo funziona benissimo

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

+ Rispondi alla Discussione

^ Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice [VIDEO] è Attivato
  • Il codice HTML è Disattivato
  • Trackbacks Attivato
  • Pingback Attivato
  • Refback Attivato

SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.