Calcule du temps entre deux date problème !

Bonjour,
Voilà j'ai une fonction qui calcule le temps entre deux date qui fonctionne à moitié. Un texte qui a été publier lundi, elle m'affiche "A l'instant" et un texte publié il y a 3 semaines, elle m'affiche "Publié il y a 2 semaines".
Je ne trouve pas mon erreur =/ Un peu de mal avec les dates...

 function Timeago($i)
 {
  $m = time()-$i; 
  $o='A l\'instant';
  $t = array('an'=>29030400,'moi'=>2419200,'semaine'=>604800,'jour'=>86400,'heure'=>3600,'minute'=>60,'seconde'=>1);
  foreach($t as $u=>$s){
   if($s<=$m){
    $v=floor($m/$s); 
    $o="Publié il y a $v $u".($v==1?'':'s').''; break;
   }
  }
  return $o;
 }


Les dates sont enregistré de cette manière dans mes tables : 2013-12-01 18:28:18

J'espère trouvez de l'aide, car mon problème est assez gênant :s

Merci d'avance et bonne soirée à vous !

1 réponse