function twig_date_modify_filter(Twig_Environment $env, $date, $modifier)
{
$date = twig_date_converter($env, $date, false);
- $date->modify($modifier);
+ $resultDate = $date->modify($modifier);
- return $date;
+ // This is a hack to ensure PHP 5.2 support and support for DateTimeImmutable
+ // DateTime::modify does not return the modified DateTime object < 5.3.0
+ // and DateTimeImmutable does not modify $date.
+ if (null === $resultDate) {
+ return $date;
+ } else {
+ return $resultDate;
+ }
}
/**
{{ date1|date('d/m/Y H:i:s', 'Asia/Hong_Kong') }}
{{ date1|date('d/m/Y H:i:s', timezone1) }}
{{ date1|date('d/m/Y H:i:s') }}
+{{ date1|date_modify('+1 hour')|date('d/m/Y H:i:s') }}
{{ date2|date('d/m/Y H:i:s P', 'Europe/Paris') }}
{{ date2|date('d/m/Y H:i:s P', 'Asia/Hong_Kong') }}
04/10/2010 19:45:00
04/10/2010 07:45:00
04/10/2010 13:45:00
+04/10/2010 14:45:00
04/10/2010 19:45:00 +02:00
05/10/2010 01:45:00 +08:00