mirror of
https://github.com/twigphp/Twig.git
synced 2026-09-12 02:16:41 +00:00
added setTimezone to allow globally overriding the timezone when formating dates
This commit is contained in:
@@ -16,6 +16,7 @@ class Twig_Extension_Core extends Twig_Extension
|
||||
{
|
||||
protected $dateFormats = array('F j, Y H:i', '%d days');
|
||||
protected $numberFormat = array(0, '.', ',');
|
||||
protected $timezone = null;
|
||||
|
||||
/**
|
||||
* Sets the default format to be used by the date filter.
|
||||
@@ -44,6 +45,30 @@ class Twig_Extension_Core extends Twig_Extension
|
||||
return $this->dateFormats;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the default timezone to be used by the date filter.
|
||||
*
|
||||
* @param DateTimeZone|string $timezone The default timezone string or a DateTimeZone object
|
||||
*/
|
||||
public function setTimezone($timezone)
|
||||
{
|
||||
if ($timezone instanceof DateTimeZone) {
|
||||
$this->timezone = $timezone;
|
||||
} else {
|
||||
$this->timezone = new DateTimeZone($timezone);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the default timezone to be used by the date filter.
|
||||
*
|
||||
* @return DateTimeZone The default timezone currently in use
|
||||
*/
|
||||
public function getTimezone()
|
||||
{
|
||||
return $this->timezone;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the default format to be used by the number_format filter.
|
||||
*
|
||||
@@ -342,6 +367,10 @@ function twig_date_format_filter(Twig_Environment $env, $date, $format = null, $
|
||||
|
||||
$date->setTimezone($timezone);
|
||||
}
|
||||
else if (($timezone = $env->getExtension('core')->getTimezone()) instanceof DateTimeZone)
|
||||
{
|
||||
$date->setTimezone($timezone);
|
||||
}
|
||||
|
||||
return $date->format($format);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user