2013-07-01 14 views
0

Этот код был найден здесь, и я использую его. Он отлично работает, за исключением того, что на французском языке слово mois, поэтому у него уже есть s. И это не имело бы смысла с двумя ss.Условия использования Ternary Operator

Как предотвратить его включение S, если слово уже завершено одним? Благодаря

function time_elapsed_string($ptime) 
{ 
    $etime = time() - $ptime; 

    if ($etime < 1) 
    { 
    return '0 seconds'; 
    } 

    $a = array(12 * 30 * 24 * 60 * 60 => 'an', 
      30 * 24 * 60 * 60  => 'mois', 
      24 * 60 * 60   => 'jour', 
      60 * 60     => 'heure', 
      60      => 'minute', 
      1      => 'seconde' 
      ); 

    foreach ($a as $secs => $str) 
{ 
    $d = $etime/$secs; 
    if ($d >= 1) 
    { 
     $r = round($d); 
     return $r . ' ' . $str . ($r > 1 ? 's' : '') . ' ago'; 
    } 
} 

} 

ответ

5

Вы можете получить последний символ строки с помощью substr() с подстроки длиной -1. Поэтому просто добавьте условие, которое проверяет, заканчивается ли слово «s»:

return $r . ' ' . $str . ($r > 1 && substr($str, -1) != 's' ? 's' : '') . ' ago'; 
Смежные вопросы