使用西班牙月份创建日期时间表达式

问题描述 投票:0回答:4

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

这就是日期函数的样子 date("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;
php date replace locale
4个回答
2
投票

在调用 date 之前尝试使用

setlocale
指定正确的语言。例如

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

附注在您的原始代码中,使用该方法,您需要替换:

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

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

但我建议使用

setlocale
,这样你就不必担心自己这样做。另外,

$echo = $time;

完全错误;应该是:

echo $time;

1
投票

不要重新发明轮子

使用strftime


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;

0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.