Q
小枝的日期差異
15
A
回答
12
有沒有內置的功能來做到這一點,但你可以很容易地自己做,extending twig很容易!
的quick'n'easy方法是用樹枝的簡單函數的類做到這一點:
$function = new Twig_SimpleFunction('date_difference', function ($start, $end) {
// ... calculate difference and return it
});
// assuming $twig is an instance of Twig_Environment
$twig->addFunction($function);
的可重複使用的方法是創建一個樹枝延伸(記錄了同一鏈路上)。這仍然很容易。
50
自PHP 5.3以來有另一種選擇,不寫擴展名。
這個例子展示瞭如何calc下的多個天/天
{# 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 %}
說明:
PHP 5.3 DateTime
對象具有diff()
方法,該方法返回一個DateInterval
對象與endDate
和beginDate
嫩枝之間的結果差
小枝date
函數總是返回DateTime
對象,所以我們可以調用diff
方法
最後,我們可以訪問DateInterval
對象的屬性或使用Twig date
過濾器對其進行格式化。
注意:如果變量已經是DateTime
對象,則不需要將endDate
或startDate
與date
函數包裝在一起。
注2:DateTime
在此用作DateTimeInterface
的同義詞。
2
另請注意,Sensio實驗室現有的Date extension提供time_diff過濾器。
然後你可以使用它像這樣:{{ entity.ending_date|time_diff(entity.starting_date) }}
相關問題
- 1. 日期差異
- 2. 日期差異
- 3. 日期差異
- 4. 差異小時,兩個日期(整數)
- 5. 最小內部日期差異
- 6. 解析日期有微小差異
- 7. php日期差異?
- 8. 日期差異Javascript
- 9. PHP日期差異
- 10. 按日期差異
- 11. SQL日期差異
- 12. PHP日期差異
- 13. Sqlite日期差異
- 14. Sharepoint日期差異
- 15. SVNKit日期差異
- 16. Javascript日期差異
- 17. MySQL日期差異
- 18. php日期差異
- 19. jquery日期差異
- 20. SQL中的日期差異
- 21. IOS中的日期差異
- 22. PHP中的日期差異?
- 23. HSQLDB中的日期差異
- 24. Android的日期差異
- 25. mysql中的日期差異
- 26. Java中的日期差異
- 27. Android中的日期差異
- 28. PHP中的日期差異
- 29. JavaScript的日期差異
- 30. mysql中的日期差異
這樣確實像是在做夢,但如果這兩個日期之間的差異將是一個多月的時間,使用.days代替.D,只有.D返回天數部分,即如果差額爲1個月,1天,.d將爲1,但日期爲32(假設爲31天的月份)。 '{%set leftDays = difference.days%}' – 2014-12-22 15:07:23
要得到生日{{date().diff(date(item.birth))。y}} – dikirill 2014-12-26 20:33:02
但是開始日期和結束日期的任一位置都會導致一天內。你如何確定它是一天還剩一天(+1),還是一天結束(-1)? – Pathros 2016-04-25 16:48:56