我在我的模板中使用它。这篇文章的日期是4/18/2018
树枝
{% set today = "now"|date("m/d/Y") %}
{{ today }} // 04/17/2018
我也尝试过明确设置时区。
{% set today = "now"|date("m/d/y", "America/Chicago") }}
{{ today }} // 04/17/2018
如果我试着获得时间:
{% set currentHour = today|date('H') %}
{{ currentHour }} // 00
是否还有其他因素导致约会过时?
感谢您的任何建议!
答案 0 :(得分:0)
date
过滤器返回DateTime
对象这一事实是错误的,实际上date
过滤器只返回一个格式化的字符串
{% set today = "now"|date("m/d/y", "America/Chicago") }}
{{ dump(today) }} {# string(8) "04/19/18" #}
为了解决您的问题,您需要使用date
twig
功能
{% set today = date("NOW", "America/Chicago") %}
{{ dump(today) }}{# object(DateTime)#919 (3) { ["date"]=> string(19) "2018-04-19 00:32:04" ["timezone_type"]=> int(3) ["timezone"]=> string(15) "America/Chicago" } #}
{{ today | date('H', false) }} {# false = ignore default set timezone #}{# 07 #}
小小的洞察力,为什么你的时间远关闭
因为date
过滤器会尝试并且最好转换有效datetime
字符串中的任何字符串,因此意味着,因为{{1包含字符串today
,04/17/2018
会将字符串转换为twig
以创建有效的04/17/2018 00:00:00
字符串
当省略时区时,datetime
会回归到它的默认时区
为了省略我示例中的twig
参数,您需要在false
中设置默认时区。这可以通过
twig