PHP:帮助替换日期文本

时间:2011-08-24 23:06:21

标签: php date str-replace

我正在使用CMS西班牙语网站,我正在尝试将这些月份替换为西班牙语。

这是日期函数日期(“F j,Y,g​​:i a”)的样子:

August 24, 2011, 1:47 pm

现在我希望它看起来像这样:

Agosto 24, 2011, 1:47 pm

使用str_replace函数替换字符串,但缺少日期和小时。

Agosto

这是我用来定义它的代码:

    date_default_timezone_set("America/Belize");
    $p['time'] = date("F j, Y, g:i a");
    $time = $p['time'];
    $search  = array('August', 'September', 'October', 'November', 'December');
    $subject ='August';
    $replace = array('Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre');
    $time = str_replace($search, $replace, $subject);

    $echo = $time;

4 个答案:

答案 0 :(得分:2)

在致电date之前,请尝试使用setlocale指定正确的语言。 E.g。

/* Set locale to Spanish */
setlocale(LC_ALL, 'es_ES');

P.S。在原始代码中,使用该方法,您需要替换:

$time = str_replace($search, $replace, $subject);

$time = str_replace($search, $replace, $time);

但我建议使用setlocale,这样您就不必担心自己这样做了。此外,

$echo = $time;

完全错了;它应该是:

echo $time;

答案 1 :(得分:1)

不要重新发明轮子

使用strftime

答案 2 :(得分:1)

$echo = $time;?!
不应该是echo $time;

你的代码应该是这样的:

date_default_timezone_set("America/Belize");
$time = date("F j, Y, g:i a");
$search  = array('August', 'September', 'October', 'November', 'December');
$replace = array('Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre');
$time = str_replace($search, $replace, $time);
echo $time;

答案 3 :(得分:0)

我认为你的str_replace的$ subject应该是$ time,否则你正在搜索并替换字符串'August'