Перейти к публикации

Как сделать дату на русском языке?


Рекомендованные сообщения

Slavik18,

В настройках скрипта задается формат вывода даты, там же дана подробная справка по формату данных, в том числе и то как как вывести название месяца.

Ссылка на сообщение
Поделиться на других сайтах

Slavik18,

В настройках скрипта задается формат вывода даты, там же дана подробная справка по формату данных, в том числе и то как как вывести название месяца.

Вы про эту справку, как сделать вместо January Январь?

  • a - "am" или "pm"
  • A - "AM" или "PM"
  • B - время Swatch Internet
  • d - день (число) месяца, 2 цифры с ведущим нулём, если необходимо; т. е. от "01" до "31"
  • D - день недели, буквенный, 3 буквы; например, "Fri"
  • F - месяц, буквенный, long; например, "January"
  • g - час, 12-часовой формат без ведущих нулей; т.е. от "1" до "12"
  • G - час, 24-часовой формат без ведущих нулей; т.е. от "0" до "23"
  • h - час, 12-часовой формат; т.е. от "01" до "12"
  • H - час, 24-часовой формат; т.е. от "00" до "23"
  • i - минуты; т.е. от "00" до "59"
  • I (заглавная i) - "1", если Daylight Savings Time, "0" - в противном случае.
  • j - день (число) месяца без ведущих нулей; т.е. от "1" до "31"
  • l ('L' в нижнем регистре) - день недели, буквенный, long; например, "Friday"
  • L - boolean, указывающее, високосный ли год; т.е. "0" или "1"
  • m - месяц; т.е. от "01" до "12"
  • M - месяц, буквенный, 3 буквы; например, "Jan"
  • n - месяц без ведущих нулей; т.е. от "1" до "12"
  • O - Разница с временем по Гринвичу, в часах; например, "+0200"
  • r - RFC 822 формат даты; например, "Thu, 21 Dec 2000 16:01:07 +0200" (введён в PHP 4.0.4)
  • s - секунды; т.е. от "00" до "59"
  • S - простой английский суффикс для дня (числа) месяца, 2 символа; т.е. "st", "nd", "rd" или "th"
  • t - количество дней в данном месяце; т.е. от "28" до "31"
  • T - установка Timezone/Часовой пояс на данной машине; например, "EST" или "MDT"
  • U - секунды эпохи Unix Epoch (начиная с January 1 1970 00:00:00 GMT)
  • w - день недели, числовой, т.е. от "0" (Sunday) до "6" (Saturday)
  • W - ISO-8601 номер недели в году, недели начинаются с понедельника/Monday (введено в PHP 4.1.0)
  • Y - год, 4 цифры; например, "1999"
  • y - год, 2 цифры; например, "99"
  • z - день года; т.е. от "0" до "365"
  • Z - смещение часового пояса, в секундах (т.е. от "-43200" до "43200").

Смещение часовых поясов к западу от UTC всегда отрицательное, а для поясов к востоку от UTC - всегда положительное.

Ссылка на сообщение
Поделиться на других сайтах

Вы про эту справку, как сделать вместо January Январь?

Если вы не перевели DLE на другой язык, и пользуетесь оригинальными языковыми файлами, то на сайте будет именно Январь а не January.

Ссылка на сообщение
Поделиться на других сайтах

Я поставил часовой пояс другой, так как старый московский не актуален сейчас, из-за этого может быть английская дата? Файл языка не трогал.

Проверил, мой косяк, в обычном виде дата на русском показывается. Я просто сделал вывод даты в списке новостей, то есть все новости в списке разделяются датой. Я установил как ниже написано, можете подсказать, как сделать, чтобы этот код русский месяц показывал?


открываете файл /engine/modules/show.short.php и сразу после строки

Код:

while ( $row = $db->get_row( $sql_result ) ) {

вставляете конструкцию вида

Код:

if (!isset($cur_date) || $cur_date != date('d F', strtotime($row['date']))) {

$cur_date = date('d F', strtotime($row['date']));

$tpl->set('{cur_date}', $cur_date);

} else {

$tpl->set('{cur_date}', '');

}

затем открываете шаблон короткой новости (обычно это shortstory.tpl) и в нужном месте вставляете тег {cur_date}

Ссылка на сообщение
Поделиться на других сайтах

Slavik18,

Смотрите как в этом же файле реализован стандартный вывод тегов дат, со стороны оригинального кода DLE, и используйте те же функции.

Ссылка на сообщение
Поделиться на других сайтах

Slavik18,

Смотрите как в этом же файле реализован стандартный вывод тегов дат, со стороны оригинального кода DLE, и используйте те же функции.

Спасибо, попробую, вы имеет ввиду файл show.short.php?

Ссылка на сообщение
Поделиться на других сайтах

вы имеет ввиду файл show.short.php?

Ну да, в нем же вывод тегов даты, для кратких новостей тоже присутствует.

Ссылка на сообщение
Поделиться на других сайтах

вы имеет ввиду файл show.short.php?

Ну да, в нем же вывод тегов даты, для кратких новостей тоже присутствует.

Сам не смог разобраться, подсказали такой вариант, заменил две верхние строчки на эти:


if (!isset($cur_date) || $cur_date != strftime('%d %A', strtotime($row['date']))) {

$cur_date = strftime("%d %A", strtotime($row['date']));

Теперь дата на русском, правда месят пишет Январь, а не Января, похоже вариант решения не лучший. ) Все оказалось проще, даже сам догадался ), надо было поменять одну функцию langdate, теперь код выглядит так и работает все правильно.

if (!isset($cur_date) || $cur_date != langdate('d F', strtotime($row['date']))) {

$cur_date = langdate('d F', strtotime($row['date']));

$tpl->set('{cur_date}', $cur_date);

} else {

$tpl->set('{cur_date}', '');

}

Остался один вопрос, как сделать в коде выше, чтобы была надпись в дате Сегодня?

Изменено пользователем Slavik18
Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...