Next Generation CMS :: Форум поддержки

Заинтересовала наша система? Тогда этот форум для Вас!

rss

Вы не зашли.

Объявление

#1 2017-03-19 16:26:24

irbees2008
Пользователь
Откуда: Шахтинск
Зарегистрирован: 2012-03-14
Сообщений: 2271
Рейтинг :   98 
Профиль  Вебсайт

форматирование даты

Как вывести день недели, месяц на русском .
Есть вариант через ads pro

Код:

function rus_date() {
    $translate = array(
    "am" => "дп",
    "pm" => "пп",
    "AM" => "ДП",
    "PM" => "ПП",
    "Monday" => "Понедельник",
    "Mon" => "Пн",
    "Tuesday" => "Вторник",
    "Tue" => "Вт",
    "Wednesday" => "Среда",
    "Wed" => "Ср",
    "Thursday" => "Четверг",
    "Thu" => "Чт",
    "Friday" => "Пятница",
    "Fri" => "Пт",
    "Saturday" => "Суббота",
    "Sat" => "Сб",
    "Sunday" => "Воскресенье",
    "Sun" => "Вс",
    "January" => "Января",
    "Jan" => "Янв",
    "February" => "Февраля",
    "Feb" => "Фев",
    "March" => "Марта",
    "Mar" => "Мар",
    "April" => "Апреля",
    "Apr" => "Апр",
    "May" => "Мая",
    "May" => "Мая",
    "June" => "Июня",
    "Jun" => "Июн",
    "July" => "Июля",
    "Jul" => "Июл",
    "August" => "Августа",
    "Aug" => "Авг",
    "September" => "Сентября",
    "Sep" => "Сен",
    "October" => "Октября",
    "Oct" => "Окт",
    "November" => "Ноября",
    "Nov" => "Ноя",
    "December" => "Декабря",
    "Dec" => "Дек",
    "st" => "ое",
    "nd" => "ое",
    "rd" => "е",
    "th" => "ое"
    );
    
    if (func_num_args() > 1) {
        $timestamp = func_get_arg(1);
        return strtr(date(func_get_arg(0), $timestamp), $translate);
    } else {
        return strtr(date(func_get_arg(0)), $translate);
    }
} 
 
echo "<b>Сегодня ". rus_date("l, j F Y")." года</b>"; // Сегодня Вторник, 21 Августа 2012 года

Или где в движке формируется

Код:

{{ now|date("l. d F Y г.  H:i") }}

Неактивен

 

#2 2017-03-19 17:47:26

infinity237
Модератор
Откуда: Russia, Moscow
Зарегистрирован: 2008-11-09
Сообщений: 2674
Рейтинг :   174 
Профиль  Вебсайт

Re: форматирование даты

Фильтр date в TWIG использует DateTime::format, который не поддерживает локали. Как вариант писать свой фильтр, либо подключать например готовый localizeddate:
https://github.com/twigphp/Twig-extensions/blob/master/lib/Twig/Extensions/Extension/Intl.php

Неактивен

 

#3 2017-07-24 10:18:40

irbees2008
Пользователь
Откуда: Шахтинск
Зарегистрирован: 2012-03-14
Сообщений: 2271
Рейтинг :   98 
Профиль  Вебсайт

Re: форматирование даты

Всем привет, нужно сделать вывод даты новости на русском, без js . Варианты с php понятны,но нужен твиг, может уже добавить фильтр выше указанный на постоянку?
Или вот эти варианты могут подойти

Код:

{% set mnths = ['','января','февраля','марта','апреля','мая','июня','июля','августа','сентября','октября','ноября','декабря'] %}

{{ record.datepublish|date("j") }} 
{{ mnths[record.datepublish|date("n")] }} 
{{ record.datepublish|date("Y") }}

Код:

$filter = new Twig_SimpleFilter('date_russian_month', function ($date) {
    $months = [1 => 'января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря'];
    $date = DateTime::createFromFormat('Y-m-d H:i:s', $date);
    $key = $date->format('n');
    return $date->format('d ' . $months[$key] . ' Y');
});
$twig->addFilter($filter);

Неактивен

 

#4 2017-07-24 14:18:07

rusiq
Пользователь
Зарегистрирован: 2014-07-16
Сообщений: 359
Рейтинг :   19 
Профиль

Re: форматирование даты

В core.php в конец добавить

Код:

$twig->addFilter('LangDate', new Twig_Filter_Function('LangDate'));

В шаблоне news.full.tpl

Код:

{{ "l, j Q Y \\года \\в H:i" | LangDate(news.dateStamp) }}

На выходе

Код:

Суббота, 22 июля 2017 года в 11:22

Отредактированно rusiq (2017-07-24 14:18:58)


Fork NG CMS fngcms

Неактивен

 

#5 2017-08-02 18:52:25

irbees2008
Пользователь
Откуда: Шахтинск
Зарегистрирован: 2012-03-14
Сообщений: 2271
Рейтинг :   98 
Профиль  Вебсайт

Re: форматирование даты

А как вывести текущую дату ?

Неактивен

 

#6 2017-08-03 00:00:36

rusiq
Пользователь
Зарегистрирован: 2014-07-16
Сообщений: 359
Рейтинг :   19 
Профиль

Re: форматирование даты

smile

Код:

{{ "l, j Q Y \\года, H:i по дефолту настроек системы \\N\\\G\\C\\M\\S" | LangDate(date().timestamp) }}

Отредактированно rusiq (2017-08-03 00:00:47)


Fork NG CMS fngcms

Неактивен

 

#7 2017-08-03 00:08:51

rusiq
Пользователь
Зарегистрирован: 2014-07-16
Сообщений: 359
Рейтинг :   19 
Профиль

Re: форматирование даты

Тогда уже надо делать не в виде фильтра, а в виде функции. В core.php вместо того, что написано ранее

Код:

$twig->addFunction('LangDate', new Twig_Function_Function('LangDate'));

Ну и там, где надо вывести текущую дату

Код:

{{ LangDate("l, j Q Y \\года, H:i", date().timestamp) }}

Либо в шаблонах, где доступна дата в формате timestamp. К примеру, news.full.tpl

Код:

{{ LangDate("l, j Q Y \\года, H:i", news.dateStamp) }}

Отредактированно rusiq (2017-08-03 00:13:18)


Fork NG CMS fngcms

Неактивен

 

Board footer

Powered by FluxBB

[ Generated in 0.010 seconds, 13 queries executed ]