drupal 8:设置twig日期格式以法语输出完整的日期和月份

时间:2016-02-25 15:14:44

标签: date twig drupal-8

{{node.field_date_evenement_news.und [0] .value2 | date(“m / d / Y”,Europe / Paris“)}}

输出

  22 février 2016

我希望它是

$("#oLink").addClass("open"); // link name
$("#oLinkDiv").show(); //div name you want to show
$("#oLinkSpan").html(''); //span that you want to change to - sign
$("#oLinkSpan").html('<i class="fa fa-minus"></i>'); //chaging sing to minus

3 个答案:

答案 0 :(得分:1)

我通过创建自己的 Twig Filter 来解决这个问题。

您也可以通过创建自己的模块来展示此过滤器

随意重复使用。

<强>代码

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

<强>提示

此过滤器使用多种形式的输入日期:

  • 日期时间
  • 时间戳
  • 的Drupal \核心\日期时间\ DrupalDateTime

希望它会帮助你!

答案 1 :(得分:0)

只是一个小小的更新,format_date现在已被弃用,请使用     而是return \Drupal::service('date.formatter')->format($timestamp, 'custom', $format);

答案 2 :(得分:0)

  • 设置我的自定义格式并选择/ admin / config / regional / date-time上的语言
  • {{date | format_date('my_format_machine_name')}}