Ecrit le

Un article de Gpenverne

Cette fonction permet de transformer un timestamp en chaine plus sympathique du type \"Il y a 10 minutes\", ou \"Il y a 2 heures\"... Un affichage similaire est utilisé sur facebook.


 


 


Le code :


 


<?php



function wall_date($time){

    $diff = (time() - $time);
    $minute = round($diff / 60);
    if($minute < 1){
        return \'<lang>Il y a quelques secondes</lang>\';

    }
    if($minute < 60){
        if($minute>1)$step=\'<lang>minutes</lang>\';
        else $step=\'<lang>minute</lang>\';
        return \'<lang>Il y a</lang> \'.$minute.\' \'.$step.\' <lang>ago</lang>\';
    }
    $heures = round($diff / (60*60));
    if($heures < 24){
        if($heures>1)$step=\'<lang>heures</lang>\';
        else $step=\'<lang>heure</lang>\';
        return \'<lang>Il y a</lang> \'.$heures.\' \'.$step.\' <lang>ago</lang>\';
    }
    $jours = round($diff / (60*60*24));
    if($jours < 7){
        if($jours>1)$step=\'<lang>jours</lang>\';
        else $step=\'<lang>jour</lang>\';
        return \'<lang>Il y a</lang> \'.$jours.\' \'.$step.\' <lang>ago</lang>\';
    }
    if(date(\'Y\', $time) != date(\'Y\', time()))$year = date(\'Y\', $time);
    return \'<lang>Le</lang> \'.date(\'d\', $time).\' <lang>\'.date(\'F\', $time).\'</lang> \'.$year;
}
?>


 


Utilisation :


$str = wall_date($timestamp);


$timestamp est une valeur obtenue via la fonction time() notamment.


 


 


Vous trouverez le fichier wall_date.php dans l\'archive zip jointe.

Gpenverne

Gpenverne

Développeur backend symfonien, qui trouve toujours moyen de faire des machins avec des bidules même si ce n'est pas utile.