我试图使用以下代码在Twig中显示DateInterval:
{{ event.endTime.diff(event.startTime)|date("i's''") }}
其中event
是一个获得2个DateTime对象的实体:endTime
和startTime
。有了这个命令,我得到了这个输出:
i's''
而不是像min'sec''
那样的08'15''
在日期医生中有人说
日期过滤器接受..。DateInterval实例
此工作将显示日期对象的分钟和秒。
注意:{{ (event.endTime.diff(event.startTime))|date("i's''") }}
不会改变任何事情
我也尝试过{{ date(event.endTime.diff(event.startTime))|date("i's''") }}
,但是这导致了一个异常Object of class DateInterval could not be converted to string
我也从细枝扩展中看到了细枝扩展,但是它返回一个字符串(in
或ago
)而不是Date对象,这样我就不能按我的意愿显示它。
如果你需要更多的信息,请告诉我。谢谢你的帮助。
发布于 2017-01-20 15:32:28
@Yoshi说:
(new \DateTime('tomorrow'))->diff(new \DateTime('now'))->format("i's''")
也给了"i's''"
,所以我想说这不是一件小事情。从手册中: “在格式参数字符串中可识别下列字符。每个格式字符必须以百分比符号(%)作为前缀。”
因此,为了解决我的问题,我只需要做:
{{ event.endTime.diff(event.startTime)|date("%i'%s''") }}
发布于 2021-12-09 10:55:37
在格式方法中,将参数'i'和‘s’s‘以小写表示,当要显示的值小于10时,放一个数字。
例如,如果需要通过显示前导0 (05:02)来显示5分2秒的时间。您必须将参数资本化,如下所示:
{{ event.endTime.diff(event.startTime)|date("%I:%S") }}
允许的参数可以在:DateInterval格式中找到
https://stackoverflow.com/questions/41760435
复制相似问题