在Twig中,我有一个像这样的DateTime(来自dump
):
DateTime {#22261 ▼
+"date": "2017-01-01 08:00:00.000000"
+"timezone_type": 1
+"timezone": "+01:00"
}
当我使用不同的过滤器打印此日期时,我会得到不同的年度结果。
示例:
{{ testdate|date('d M Y') }}
打印01 Jan 2017
=>年是正确的。
{{ testdate|localizeddate('none', 'none', "fr", "Europe/Paris", "d MMM YYYY") }}
打印1 janv. 2016
=>年份错误。
{{ testdate|localizeddate('medium', 'none', "fr") }}
打印1 janv. 2017
=>年是正确的。
因此,当我使用localizeddate('none', 'none', "fr", "Europe/Paris", "d MMM YYYY")
时,这一年似乎是错误的。
如果我将语言环境更改为" en",则年份现在正确(2017年)。但是如果我尝试其他语言环境,例如" de","它"," es"," pl"年总是" 2016"。
注意:如果我将null
用于时区参数,则结果相同。
答案 0 :(得分:1)
http://userguide.icu-project.org/formatparse/datetime
您必须使用'y'而不是'Y'。
使用'Y'表示星期几,但是'y'表示正确的年份。
有时,1月短暂的一周被认为是12月的一部分(第52周或第53周),反之亦然。