2011-08-24 39 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」);它不工作 –