我在这个论坛中找到了这个代码,我正在使用它。它的工作正常,但在法语中,月份是mois,所以它已经有了s。两个ss没有意义。
如果一个单词已经以一个单词结尾,如何阻止它插入? 感谢
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';
}
}
}
答案 0 :(得分:5)
您可以使用子字符串长度为-1的substr()
来获取字符串的最后一个字符。所以只需添加一个条件来检查单词是否以“s”结尾:
return $r . ' ' . $str . ($r > 1 && substr($str, -1) != 's' ? 's' : '') . ' ago';