Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    1,976

    Conversione data per differenza

    Ho questa funzione che funziona
    Codice PHP:
            $data1 = new DateTime('2021-04-15');
            
    $data2 = new DateTime($oggi);
            
    $interval $data1->diff($data2);
            echo 
    $interval->format('%R%d'); 
    Semplicemente vorei sostituire $data1 con una data che ho $ggm + 1 anno.
    Cos:
    Codice PHP:
             echo $ggm// echo resistuisce 2020-03-19
            
    $data1 strtotime ('+1 year' strtotime ($ggm)) ; 
    Ma in quel modo ho l'errore:

    codice HTML:
    Fatal error: Call to a member function diff() on a non-object
    Sicuramente un errore di formato, ma non gli passo lo stesso???
    Grazie

  2. #2
    A me questo codice gira:

    codice:
    $oggi = '2021-04-13';
    
    $data1 = new DateTime('2021-04-15');
    $data2 = new DateTime($oggi);
    $interval = $data1->diff($data2);
    echo $interval->format('%R%d');

  3. #3
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    1,976
    Si il tuo funziona.... data1 che mi da errore quando le aggiungo un anno cos:

    codice:
    echo $ggm; // echo resistuisce 2020-03-19
            $data1 = strtotime ('+1 year' , strtotime ($ggm)) ;  
    
    Fatal error: Call to a member function diff() on a non-object in

    La riga segnalata
    codice:
    $interval = $data1->diff($data2);
    Ma il problema sicuramente data1, perch se gli forzo la data come hai fatto tu funziona.

  4. #4
    Chiediti cosa restituisce https://www.php.net/strtotime e che cosa DateTime e scommetto che scopri l'arcano.

  5. #5
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    1,976
    Che l'errore dato che passo due cose diverse mi chiaro... ma non mi chiaro come passare data1 nello stesso formato.
    Io ho una data del 2020 a cui devo sommare un anno.

  6. #6

  7. #7
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    1,976
    Non riesco a capire... io da strtotime devo passare a datetime
    codice:
    $date = new DateTime();
    echo $date->format('U = Y-m-d H:i:s') . "\n";
    li vedo come formattare il datetime, che per a me va bene come . (in quel caso funziona)

  8. #8
    codice:
    echo $ggm; // echo resistuisce 2020-03-19
    $timestamp = strtotime ('+1 year' , strtotime ($ggm)) ;  
    
    $data1 = new DateTime();
    $data1->setTimestamp($timestamp);
    Ultima modifica di filippo.toso; 14-04-2021 a 10:14 Motivo: Typo

  9. #9
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    1,976
    No!
    Perch sulla riga
    codice:
    $data1->setTimestamp(timestamp);
    Ho ben due errori
    Notice: Use of undefined constant timestamp - assumed 'timestamp'
    Warning: DateTime::setTimestamp() expects parameter 1 to be long, string given


    Poi indipendentemente dalla data di partenza il risultato che stampa sempre -0

  10. #10
    codice:
    $ggm = '2020-03-19';
    
    echo $ggm; // echo resistuisce 2020-03-19
    $timestamp = strtotime('+1 year', strtotime($ggm));
    
    
    $data1 = new DateTime();
    $data1->setTimestamp($timestamp);
    
    
    var_dump($data1);

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