2016-02-25 2 views
1

{{node.field_date_evenement_news.und [0] .value2 | дата ("m/d/Y", Европа/Париж ")}}drupal 8: установить формат даты ветви для вывода полных дней и месяцев на французский

выход

2/22/2016 

я хотел бы, чтобы это было

22 février 2016 
+1

ваша установка мультиязычный правильно настроить? https://www.ostraining.com/blog/drupal/d8-multi-lingual/ – augusto

+1

спасибо. это не может помочь мне здесь, потому что контент, который я показываю для этого модуля, является внешним по отношению к drupal и предоставляется веб-сервисом – Matoeil

ответ

1

Я решить эту проблему путем создания мой собственный Twig фильтр.

Вы можете сделать это, создав свой собственный модуль, подвергнув этому воздействию Фильтр.

Не стесняйтесь использовать его повторно.

Код

namespace Drupal\twig_extender\TwigExtension; 

class Dates extends \Twig_Extension { 

    /** 
    * List of all Twig functions 
    */ 
    public function getFilters() { 
     return [ 
      new \Twig_SimpleFilter('date_format', array($this, 'formatDate')), 
     ]; 
    } 

    /** 
    * Unique identifier for this Twig extension 
    */ 
    public function getName() { 
     return 'twig_extender.twig.dates'; 
    } 

    /* 
    Render a custom date format with Twig 
    Use the internal helper "format_date" to render the date using the current language for texts 
    */ 
    public static function formatDate($date, $format) { 
     if ($date_format = \DateTime::createFromFormat('Y-m-d', $date)) { 
      $timestmap = strtotime($date); 
     }elseif (is_a($date, 'Drupal\Core\Datetime\DrupalDateTime') || is_a($date, 'DateTime')){ 
      $timestmap = $date->getTimestamp(); 
     }else{ 
      $timestmap = $date; 
     } 
     return format_date($timestmap, "custom", $format); 
    } 

} 

Использование

{{ my_unformatted_date|date_format('d M') }} 

Это приведет к

01 DéC# In French 
01 DeC# In English 

Советы

Этого фильтр работа с датой ввода множественной формы такой:

  • DateTime
  • Отметка
  • Drupal \ Ядро \ Datetime \ DrupalDateTime

Надеется, что это поможет вам парень!

0

Просто небольшое обновление, format_date теперь deprecieted, используйте return \Drupal::service('date.formatter')->format($timestamp, 'custom', $format); вместо

Смежные вопросы