2011-08-24 63 views
1

我正在使用CMS西班牙语网站,我正在尝试用几个月来替换西班牙语。PHP:帮助取代日期文本

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

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; 

回答

2

尝试使用setlocale指定调用date之前正确的语言。例如。

/* 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; 
+0

它不为我工作由于某种原因,日期始终保持在英语。 –

+0

嗯......它可能*你没有西班牙语区域可用。如果你在一个UNIX机器上,试着检查/ usr/share/locale/- 那里有关'es'的任何东西? –

+2

好的,正如gAMBOOKa指出的那样,您需要使用strftime()来利用语言环境。 –

0

我觉得你str_replace函数的$主题应该是$时间,否则你做了搜索,并在替换字符串“八一”

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;