Bonjour je voudrais formater la date pour mon tchat en minutes (ex: il y a 3 minutes) jusqu'a 59 minutes pour ensuite passer aux heures etc ...

J'ai réussi a le faire mais je bloque car je veux l'afficher dans une boucle grace a un fetch normal pour un tchat

4 réponses


Pierrot01
Réponse acceptée

Salut,
datediff est ton amie ;)

$datetime1 = new DateTime('2017-05-13 13:00');
$datetime2 = new DateTime('2017-05-13 15:50');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%H heures %I minute(s)');

@plus

Pierre

Karim603
Auteur

merci beaucoup !

J'avais quelques minutes à perdre ;

<?php
function ilYA($dateTime){
    $tabt = array(0=>" an",1=>" mois",2=>" jour",3=>" heure",4=>" minute");
    $datetime1 = new DateTime($dateTime);
    $datetime2 = new DateTime('now');
    $interval = $datetime1->diff($datetime2);
    $tmp = explode(' ',$interval->format('%y %m %d %h %i'));
    $retour = "";
    foreach ($tmp as $key => $value){
        // echo $key . "->" . $value."\n";
        $retour .= ($value > 0) ? $value . $tabt[$key] : ''; 
        $retour .= ($value > 1 && $key !=1) ? 's ' : ' ' ;
    }
    return "Il y a " . trim(str_replace('  ',' ',$retour));
}

echo ilYA('2017-05-14 00:20') . "\n";
echo ilYA('2017-04-14 15:20') . "\n";
echo ilYA('2017-02-13 15:10') . "\n";
echo ilYA('2016-02-13 12:20') . "\n";
echo ilYA('2015-02-10 11:30') . "\n";

pour test

@plus