mirror of
https://github.com/twigphp/Twig.git
synced 2026-09-16 04:16:28 +00:00
Fixed the date filter's timezone not being set correctly with strings
This commit is contained in:
+10
-10
@@ -496,23 +496,23 @@ function twig_date_modify_filter(Twig_Environment $env, $date, $modifier)
|
|||||||
function twig_date_converter(Twig_Environment $env, $date = null, $timezone = null)
|
function twig_date_converter(Twig_Environment $env, $date = null, $timezone = null)
|
||||||
{
|
{
|
||||||
// determine the timezone
|
// determine the timezone
|
||||||
if (!$timezone) {
|
if (false !== $timezone) {
|
||||||
$defaultTimezone = $env->getExtension('core')->getTimezone();
|
if (null === $timezone) {
|
||||||
} elseif (!$timezone instanceof DateTimeZone) {
|
$timezone = $env->getExtension('core')->getTimezone();
|
||||||
$defaultTimezone = new DateTimeZone($timezone);
|
} elseif (!$timezone instanceof DateTimeZone) {
|
||||||
} else {
|
$timezone = new DateTimeZone($timezone);
|
||||||
$defaultTimezone = $timezone;
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// immutable dates
|
// immutable dates
|
||||||
if ($date instanceof DateTimeImmutable) {
|
if ($date instanceof DateTimeImmutable) {
|
||||||
return false !== $timezone ? $date->setTimezone($defaultTimezone) : $date;
|
return false !== $timezone ? $date->setTimezone($timezone) : $date;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($date instanceof DateTime || $date instanceof DateTimeInterface) {
|
if ($date instanceof DateTime || $date instanceof DateTimeInterface) {
|
||||||
$date = clone $date;
|
$date = clone $date;
|
||||||
if (false !== $timezone) {
|
if (false !== $timezone) {
|
||||||
$date->setTimezone($defaultTimezone);
|
$date->setTimezone($timezone);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $date;
|
return $date;
|
||||||
@@ -523,9 +523,9 @@ function twig_date_converter(Twig_Environment $env, $date = null, $timezone = nu
|
|||||||
$date = '@'.$date;
|
$date = '@'.$date;
|
||||||
}
|
}
|
||||||
|
|
||||||
$date = new DateTime($date, $defaultTimezone);
|
$date = new DateTime($date, $env->getExtension('core')->getTimezone());
|
||||||
if (false !== $timezone) {
|
if (false !== $timezone) {
|
||||||
$date->setTimezone($defaultTimezone);
|
$date->setTimezone($timezone);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $date;
|
return $date;
|
||||||
|
|||||||
Reference in New Issue
Block a user