Datetime 嫩枝日期差
我有一个实体,有开始日期和结束日期Datetime 嫩枝日期差,datetime,twig,datediff,Datetime,Twig,Datediff,我有一个实体,有开始日期和结束日期 通过使用细枝可以得到它们之间的时间差吗?没有内置的函数可以做到这一点,但是你可以自己轻松做到,这很简单 快速简便的方法是使用twig的简单函数类: $function=new Twig\u SimpleFunction('date\u difference',function($start,$end){ //…计算差异并返回它 }); //假设$twig是twig_环境的一个实例 $twig->addFunction($function); 可重用的方法是创
通过使用细枝可以得到它们之间的时间差吗?没有内置的函数可以做到这一点,但是你可以自己轻松做到,这很简单 快速简便的方法是使用twig的简单函数类:
$function=new Twig\u SimpleFunction('date\u difference',function($start,$end){
//…计算差异并返回它
});
//假设$twig是twig_环境的一个实例
$twig->addFunction($function);
可重用的方法是创建一个细枝扩展(记录在同一链接上)。这仍然很容易。因为PHP5.3还有另一个不需要编写扩展的选项 此示例显示如何计算复数天
{# endDate and startDate are strings or DateTime objects #}
{% set difference = date(endDate).diff(date(startDate)) %}
{% set leftDays = difference.days %}
{% if leftDays == 1 %}
1 day
{% else %}
{{ leftDays }} days
{% endif %}
说明:
PHP5.3DateTime
对象有一个方法,该方法返回的对象的结果在endDate
和beginDate
小枝
Twig函数总是返回一个DateTime
对象,因此我们可以调用diff
方法
最后,我们可以访问DateInterval
对象的属性,或者使用Twigdate
过滤器对其进行格式化
注意:如果变量已经是DateTime
对象,则不需要使用date
函数包装endDate
或startDate
注2:
DateTime
在这里用作DateTime接口的同义词
还请注意,Sensio实验室提供了一个时间差过滤器
然后您可以这样使用它:{{entity.ending_date | time_diff(entity.start_date)}
请注意,对于Symfony 5,Twig 3不支持此插件:,我建议使用 它提供细枝功能
| ago
要安装:
composer require knplabs/knp time bundle
这确实像做梦一样工作,但是如果日期之间的差异将超过一个月,请使用.days而不是.d,.d只返回天数部分,即如果差异为1个月,则为1天,.d将为1天,但.days将为32天(假设为31天)<代码>{%set leftDays=difference.days%}以获取生日{{date().diff(date(item.birth)).y},但开始日期和结束日期的任一位置都将产生一天。你怎么确定是剩下一天(+1),还是超过一天(-1)??太棒了。你是树枝大师