PHP: Помогите заменить текст даты - PullRequest
1 голос
/ 25 августа 2011

Я работаю с испанским веб-сайтом 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;

Ответы [ 4 ]

2 голосов
/ 25 августа 2011

Попробуйте использовать setlocale , чтобы указать правильный язык перед вызовом date.Например,

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

PS В исходном коде, используя этот подход, вам необходимо заменить:

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

на

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

Но я бы порекомендовал использовать setlocale так что вам не нужно беспокоиться о том, чтобы сделать это самостоятельно.Кроме того,

$echo = $time;

совершенно неверно;должно быть:

echo $time;
1 голос
/ 25 августа 2011

$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;
1 голос
/ 25 августа 2011

Не изобретать велосипед

Использовать strftime

0 голосов
/ 25 августа 2011

Я думаю, что $ субъект вашего str_replace должен быть $ time, в противном случае вы выполняете поиск и замену в строке 'August'

...