Я бы хотел сравнить две даты, чтобы получить разницу в времени (дни, часы, минуты и секунды) в TWIG
{% set todayDate = ( "now"| date("Ymd H:i:s") ) %} //2013-04-17 08:45:28 {% set endDate = (enddate|date('Ymd H:i:s')) %} //2013-04-18 23:59:59
Как получить разницу в часах?
Наконец, я получил его. Сравните две даты, чтобы получить время (дни, часы и минуты) в контроллере:
(запрос доктрины)
TIMESTAMPDIFF(DAY,CURRENT_TIMESTAMP(), a.enddate) AS endday, (TIMESTAMPDIFF(HOUR,CURRENT_TIMESTAMP(), a.enddate) - TIMESTAMPDIFF(DAY,CURRENT_TIMESTAMP(),a.enddate)*24) AS endhour, (TIMESTAMPDIFF(MINUTE,CURRENT_TIMESTAMP(), a.enddate) - TIMESTAMPDIFF(HOUR,CURRENT_TIMESTAMP(), a.enddate)*60) AS endmin,
Создал функцию для TIMESTAMPDIFF https://github.com/beberlei/DoctrineExtensions/blob/master/lib/DoctrineExtensions/Query/Mysql/TimestampDiff.php
и включить фрагмент
app-> config-> config.yml doctrine: dbal: ……..
orm: entity_managers: default: auto_mapping: true dql: datetime_functions: timestampdiff: Acme\BUNDLE\FOLDER\TimestampDiff
Спасибо всем ..
Поскольку вы передаете enddate в свой шаблон, вы должны сделать это в своем контроллере и передать результат в свой шаблон.
Вот код php, который вы могли бы использовать:
$now = new DateTime('now'); $dateToCompare = new DateTime('your date'); $difference = $now->format('U') - $dateToCompare->format('U'); // or if your date to compare is in the future : // $difference = $dateToCompare->format('U') - $now->format('U'); $time_diff = gmdate('H',$difference); echo $time_diff;