tienes que c ompare día con día, Secondes comparaison son totalmente equivocado:
Si estamos hoy por la mañana, lo que significa la noche de ayer es hoy en día (por menos 24h) ^^
aquí un método que utilizo para Kinoulink (una puesta en marcha francés) :
public function formatDateAgo($value)
{
$time = strtotime($value);
$d = new \DateTime($value);
$weekDays = ['Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi', 'Dimanche'];
$months = ['Janvier', 'Février', 'Mars', 'Avril',' Mai', 'Juin', 'Juillet', 'Aout', 'Septembre', 'Octobre', 'Novembre', 'Décembre'];
if ($time > strtotime('-2 minutes'))
{
return 'Il y a quelques secondes';
}
elseif ($time > strtotime('-30 minutes'))
{
return 'Il y a ' . floor((strtotime('now') - $time)/60) . ' min';
}
elseif ($time > strtotime('today'))
{
return $d->format('G:i');
}
elseif ($time > strtotime('yesterday'))
{
return 'Hier, ' . $d->format('G:i');
}
elseif ($time > strtotime('this week'))
{
return $weekDays[$d->format('N') - 1] . ', ' . $d->format('G:i');
}
else
{
return $d->format('j') . ' ' . $months[$d->format('n') - 1] . ', ' . $d->format('G:i');
}
}
¿Tiene algún código que haya escrito hasta ahora? –
¿Puedes intentar ser más preciso? No entendí lo que quieres decir con Ayer y Hoy ... francamente ;-) – maraspin
Es mañana que debes preocuparte, no ayer o hoy, despejando todas esas telarañas y el dolor, solo sabiendo que está a un día de distancia y todo ese. –