Salut ! je suis debutant en php.
j'ai rencontré un probleme lors d'un TP

    <div class="form-group">
         <input type="datetime" class="form-control" name="datap" id="datap" placeholder=""/>
    </div>

    php
    <?php 
         $datap = $_POST['datap'];

         $datetime1 = new DateTime($datap); // Date dans le passé
         $datetime2 = new DateTime(date("Y-m-d H:i:s"));   // Date du jour 

    $anneutilisation = $datetime1->diff($datetime2);

     $anneutilisation->format('%y'); // par exemple: 4 annees utilisation

j'aimerais obtenir le nombre d'annee d'utilisation mais voici ce que j'obtiens comme message d'erreur

Recoverable fatal error: Object of class DateInterval could not be converted to string

je ne sais que faire votre aide sera la bienvenue merci.

3 réponses


Hello,

L'erreur indique simplement que tu essaie de retourner en String un objet ce qui n'est pas possible.

Essaie ça:

    $datetime1 = new DateTime($datap); // Date dans le passé
    $datetime2 = new DateTime(date("Y-m-d H:i:s"));   // Date du jour 

    $anneutilisation = $datetime1->diff($datetime2)->format('%y');

    echo $anneutilisation;

J'ai testé et ça marche, seulement il faut que le format entré dans $datap soit le même que $datetime2 donc si ton utilisateur ne rentre qu'une année il faut que ton date dans datetime soit au format date("Y") sinon la diff fera n'importe quoi.

je ne sais que faire votre aide sera la bienvenue merci.

L'erreur indique simplement que tu essaie de retourner en String un objet ce qui n'est pas possible.

Cellinfo