Доброго времени суток, возникла проблем с локалью. Задумка: ковертировать английские названия месяцев в русские. Но почему то не работает
читать дальше<? $page_title = 'Летопись ';
include('header.php');
setlocale (LC_ALL, 'ru_RU.CP1251');
?>
<h2>Летопись </h2>
<?
include ('connection.php');
$sql = "SELECT * FROM chronic ORDER by id DESC LIMIT 5";
$result = mysql_query($sql) or print ("Что-то с летописью, заклинания не хотят работать.<br />".$sql."<br />".mysql_error());
while ($row = mysql_fetch_array($result)) {
$date = date("l F d Y", $row['time']);
$title = stripslashes($row['title']);
$entry = stripslashes($row['entry']);
$id = $row['id'];
echo "<p>";
?>
<strong><? echo $title; ?></strong><br /><br />
<? echo $entry; ?><br /><br />
Вехо было создано <? echo $date; ?>
<? $result2 = mysql_query("SELECT id FROM chronic_cmt WHERE entry='$id'");
$num_rows = mysql_num_rows($result2);
if ($num_rows > 0) {
echo "<a href=\"entry.php?id=" . $id . "\"> мнений: " . $num_rows . "</a>";
}
else {
echo "<a href=\"entry.php?id=" . $id . "\"> Высказать своё мнение</a>";
}
?>
<hr width="400px">
<?
}
echo "</p>";
include('footer.php'); ?>
$date = strftime("%A %B %d %Y", $row['time']);
Что-то вроде этого.
Терь по сути. Поглядим man функции setlocale():
--------
Setlocale возвращает имя вновь установленной локали или FALSE если системе не поддерживает установку локали, указанная локаль не существует или передано недопустимое имя категории. Недопустимое имя категории также вызывает предупредение.
--------
Отсюда, возможность первая и вторая: либо система вообще не имеет возможности сменить локаль, либо указано неверное имя локали. Из того же мана видно, что вторым и последующим аргументамт можно передавать синонимы локали. Поэтому предлага попробовать:
$set_loc = setlocale(LC_ALL, 'ru_RU', 'RU', 'ru', 'RUS', 'rus');
echo $set_loc;
Так можно (если угадали), посмотреть, какой вариант верный для данной системы.
$date = strftime("%A %B %d %Y", $row['time']);
Это сработало
Понятно почему %d %Y
Но что такое %A %B?
скрипт тест локале
Default C (January), settting ru_RU.UTF8 (Январь) ru_RU.UTF-8 (Январь) ru_RU.utf8 (Январь) ru_RU.utf-8 (Январь) ru_RU.CP-1251 (������
но при вводе $set_loc = setlocale(LC_ALL, 'ru_RU', 'RU', 'ru', 'RUS', 'rus'); не помогает
function setEventCalender()
{
if(isset($_GET['month']) && isset($_GET['year']))
{
$input_month = intval($_GET['month']);
$input_year = intval($_GET['year']);
}
else
{
$input_month = date("m");
$input_year = date("Y");
}
$month = date("F",mktime(0,0,0,$input_month,date("d"),$input_year));
$today = date("d",mktime(0,0,0,$input_month,date("d"),$input_year));
$year = date("Y",mktime(0,0,0,$input_month,date("d"),$input_year));
$offset = date("w",mktime(0,0,0,$input_month,1,$input_year))+1;
$total = date("t",mktime(0,0,0,$input_month,1,$input_year));
if($input_month <= 1)
{
$prev_m = 12;
$prev_y = $input_year-1;
}
else
{
$prev_m = $input_month-1;
$prev_y = $input_year;
}
if($input_month >= 12)
{
$next_m = 1;
$next_y = $input_year+1;
}
else
{
$next_m = $input_month+1;
$next_y = $input_year;
}
for($j=0;$j<$offset;$j++)
{
$date[] = " ";
}
for($i=1;$i<=$total;$i++)
{
if($i == $today)
$date[] = $i;
else
$date[] = $i;
}