Hallo liebe Gemeinde,
ich grüble seit Stunden an dem Problem meine "time_elapsed_string - Funktion" auf die deutsche Sprache umzumodeln,- ich kriege das nicht hin...
Die bekannte Funktion sieht bei mir so aus:
Bei z.B. 1 Tag wird "1 Day ago" ausgegeben, bei 2 Tagen die Mehrzahl "2 Days ago".
Ich brauche die Ausgabe in deutscher Sprache.
Während in englischer Sprache bei Mehrzahl immer nur das 's' an day(s), week(s)......second(s) angefügt wird, ist das Handling sehr einfach.
In deutscher Sprache endet die Mehrzahl aber mal mit 'e' wie bei 'Tag(e)', dann aber wieder mit 'en' wie bei 'Minute(n).
Nun einfach statt dem 's' ein 'en' einzusetzen geht ja nicht,- die Ausgabe würde dann ja 'Minuteen', 'Stundeen' usw. lauten...
Wie kann ich das in deutsch hin kriegen? Ich dachte schon an ein zweites array, aber es gelingt mir einfach nicht.
Wer weiß das?
Danke und Gruß
ich grüble seit Stunden an dem Problem meine "time_elapsed_string - Funktion" auf die deutsche Sprache umzumodeln,- ich kriege das nicht hin...
Die bekannte Funktion sieht bei mir so aus:
PHP-Code:
public function time_elapsed_string($datetime, $full = false, $future = 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);
if($future)
{
return $string ? implode(', ', $string) . ' to go' : 'to go';
}
return $string ? implode(', ', $string) . ' ago' : 'just now';
}
Ich brauche die Ausgabe in deutscher Sprache.
Während in englischer Sprache bei Mehrzahl immer nur das 's' an day(s), week(s)......second(s) angefügt wird, ist das Handling sehr einfach.
In deutscher Sprache endet die Mehrzahl aber mal mit 'e' wie bei 'Tag(e)', dann aber wieder mit 'en' wie bei 'Minute(n).
Nun einfach statt dem 's' ein 'en' einzusetzen geht ja nicht,- die Ausgabe würde dann ja 'Minuteen', 'Stundeen' usw. lauten...
Wie kann ich das in deutsch hin kriegen? Ich dachte schon an ein zweites array, aber es gelingt mir einfach nicht.
Wer weiß das?
Danke und Gruß
Kommentar