0

我在这个论坛上找到了这段代码,我正在使用它。它工作得很好,除了法语单词month是mois,所以它已经有一个s。两个ss没有意义。

如果一个单词已经以一个结尾,我如何防止它插入一个 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';
    }
 }

}
4

1 回答 1

5

您可以使用substr()substring-length 为 -1 来获取字符串的最后一个字符。所以只需添加一个条件来检查单词是否以“s”结尾:

return $r . ' ' . $str . ($r > 1 && substr($str, -1) != 's' ? 's' : '') . ' ago';
于 2013-07-01T18:14:27.133 回答