Skip to content

Commit

Permalink
Make date_modify work with DateTimeImmutable
Browse files Browse the repository at this point in the history
  • Loading branch information
globin authored and fabpot committed Oct 11, 2014
1 parent b7f60e4 commit a5fe46f
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 2 deletions.
11 changes: 9 additions & 2 deletions lib/Twig/Extension/Core.php
Expand Up @@ -473,9 +473,16 @@ function twig_date_format_filter(Twig_Environment $env, $date, $format = null, $
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;
}
}

/**
Expand Down
2 changes: 2 additions & 0 deletions test/Twig/Tests/Fixtures/filters/date_immutable.test
Expand Up @@ -8,6 +8,7 @@ version_compare(phpversion(), '5.5.0', '>=')
{{ 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') }}
Expand All @@ -27,6 +28,7 @@ October 4, 2010 13:45
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
Expand Down

0 comments on commit a5fe46f

Please sign in to comment.