Potrzebuję pomocy przy przerobieniu skryptu na wersję polską. Oczywiście wiem, że dobrą radą którą byści mi życzyli to zrobienie to samemu. Jednakże przyda się taki wpis. "Po co tworzyć koło od nowa".
W języku Angielskim wystarczy dodać końcówkę "s" na końcu słowa by uzyskać liczbę mnogą. W języku Polskim jest trochę trudniej, gdyż mamy dla przykładu:
1 sekundę temu -> 2 sekundy temu - > 5 sekund temu itd.
Na zagranicznym forum znalazłem skrypt który dobrze działa w języku Angielskim.
function time_elapsed_string($datetime, $full = false) {
$now = new DateTime;
$ago = new DateTime($datetime);
$diff = $now->diff($ago);
$diff->w = floor($diff->d / 7);
$diff->d -= $diff->w * 7;
$string = array(
'y' => 'year',
'm' => 'month',
'w' => 'week',
'd' => 'day',
'h' => 'hour',
'i' => 'minute',
's' => 'second',
);
foreach ($string as $k => &$v) {
if ($diff->$k) {
$v = $diff->$k . ' ' . $v . ($diff->$k > 1 ? 's' : '');
} else {
unset($string[$k]);
}
}
if (!$full) $string = array_slice($string, 0, 1);
return $string ? implode(', ', $string) . ' ago' : 'just now';
}