2011-08-24 97 views
1

我正在使用CMS西班牙语网站,我试图用西班牙语替换几个月。用str_replace替换内容的问题

这是怎么样子的日期功能日期( “缩略词,Y,G:IA”)

August 24, 2011, 1:47 pm 

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

Agosto 24, 2011, 1:47 pm 

使用来自Php Documentation我提出这样的例子:

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

钍e出现在以下错误:

Fatal error: Call to undefined function August 24, 2011, 3:50 pm() in 
    $search = $time_english('August', 'September', 'October', 'November', 'December'); 
+0

要调用$ time_english和$ time_spanish的功能,它应该是阵列()。 – Usman

回答

1

我想你的意思

$search = array('August', 'September', 'October', 'November', 'December'); 
    $replace = array('Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'); 

,而不是

$search = $time_english('August', 'September', 'October', 'November', 'December'); 
    $replace = $times_spanish('Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'); 

作为一个兴趣点,你的错误说的原因,它正试图打电话一个名为August 24, 2011, 3:50 pm()的函数是因为明显的可变函数名称$time_english()。它返回$time_english的值,然后尝试将其作为函数运行。


这里的整个事情:

$p['time'] = date("F j, Y, g:i a"); 
$time_english = $p['time']; 
$search = array('August', 'September', 'October', 'November', 'December'); 
$replace = array('Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'); 
$time_spanish = str_replace($search, $replace, $time_english); 
+0

@Gabriel查看我的更新以获取完整的代码。 – Wiseguy

1

这可能是正确的

$p['time'] = date("F j, Y, g:i a"); 

$search = array('August', 'September', 'October', 'November', 'December'); 
$replace = array('Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'); 
str_replace($search, $replace, $subject); 
+0

谢谢,但我需要将此保存到可变时间,我该如何实现? '\t \t $ p ['time'] = date(“F j,Y,g​​:i a”); \t \t $ time = $ p ['time']; $ search = array('八月','九月','十月','十一月','十二月'); \t \t $ subject ='August'; \t \t $ replace = array('Agosto','Septiembre','Octubre','Noviembre','Diciembre'); \t \t str_replace函数($搜索,$替换,​​$主题);?' –

+0

str_replace函数前加'$时间=' – genesis

+0

这只是返回 '阿冈斯托',日子和时刻缺少:( –

2

这将是容易得多只使用strftime()。你所要做的就是设置一个locale,你可以用你想要的语言输出。

例子:

setlocale(LC_ALL, 'es_ES'); // I think it´s es_ES 
$my_time = strftime("%B %e, %G, %I:%M %P"); // something like that... 
+0

你能举一个具体的例子 –

+0

@ Gabriel我添加了一个例子。 – jeroen

+0

我在放置setlocale(LC_TIME,“es_ES”);它不工作 –