mirror of
https://github.com/twigphp/Twig.git
synced 2026-09-12 02:16:41 +00:00
Fix docs of date filter
This commit is contained in:
@@ -17,7 +17,7 @@ The ``date`` filter formats a date to a given format:
|
|||||||
{{ post.published_at|date("m/d/Y") }}
|
{{ post.published_at|date("m/d/Y") }}
|
||||||
|
|
||||||
The ``date`` filter accepts strings (it must be in a format supported by the
|
The ``date`` filter accepts strings (it must be in a format supported by the
|
||||||
`date`_ function), `DateTime`_ instances, or `DateInterval`_ instances. For
|
`strtotime`_ function), `DateTime`_ instances, or `DateInterval`_ instances. For
|
||||||
instance, to display the current date, filter the word "now":
|
instance, to display the current date, filter the word "now":
|
||||||
|
|
||||||
.. code-block:: jinja
|
.. code-block:: jinja
|
||||||
@@ -53,7 +53,7 @@ The default timezone can also be set globally by calling ``setTimezone()``:
|
|||||||
$twig = new Twig_Environment($loader);
|
$twig = new Twig_Environment($loader);
|
||||||
$twig->getExtension('core')->setTimezone('Europe/Paris');
|
$twig->getExtension('core')->setTimezone('Europe/Paris');
|
||||||
|
|
||||||
.. _`date`: http://www.php.net/date
|
.. _`strtotime`: http://www.php.net/strtotime
|
||||||
.. _`DateTime`: http://www.php.net/DateTime
|
.. _`DateTime`: http://www.php.net/DateTime
|
||||||
.. _`DateInterval`: http://www.php.net/DateInterval
|
.. _`DateInterval`: http://www.php.net/DateInterval
|
||||||
|
|
||||||
|
|||||||
@@ -123,6 +123,7 @@ class Twig_Extension_Core extends Twig_Extension
|
|||||||
$filters = array(
|
$filters = array(
|
||||||
// formatting filters
|
// formatting filters
|
||||||
'date' => new Twig_Filter_Function('twig_date_format_filter', array('needs_environment' => true)),
|
'date' => new Twig_Filter_Function('twig_date_format_filter', array('needs_environment' => true)),
|
||||||
|
'date_modify' => new Twig_Filter_Function('twig_date_modify_filter', array('needs_environment' => true)),
|
||||||
'format' => new Twig_Filter_Function('sprintf'),
|
'format' => new Twig_Filter_Function('sprintf'),
|
||||||
'replace' => new Twig_Filter_Function('strtr'),
|
'replace' => new Twig_Filter_Function('strtr'),
|
||||||
'number_format' => new Twig_Filter_Function('twig_number_format_filter', array('needs_environment' => true)),
|
'number_format' => new Twig_Filter_Function('twig_number_format_filter', array('needs_environment' => true)),
|
||||||
@@ -378,7 +379,7 @@ function twig_random(Twig_Environment $env, $values = null)
|
|||||||
* @param string $format A format
|
* @param string $format A format
|
||||||
* @param DateTimeZone|string $timezone A timezone
|
* @param DateTimeZone|string $timezone A timezone
|
||||||
*
|
*
|
||||||
* @return string The formatter date
|
* @return string The formatted date
|
||||||
*/
|
*/
|
||||||
function twig_date_format_filter(Twig_Environment $env, $date, $format = null, $timezone = null)
|
function twig_date_format_filter(Twig_Environment $env, $date, $format = null, $timezone = null)
|
||||||
{
|
{
|
||||||
@@ -399,6 +400,30 @@ function twig_date_format_filter(Twig_Environment $env, $date, $format = null, $
|
|||||||
return twig_date_converter($env, $date, $timezone)->format($format);
|
return twig_date_converter($env, $date, $timezone)->format($format);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a new date object modified
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* {{ post.published_at|modify("-1day")|date("m/d/Y") }}
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @param Twig_Environment $env A Twig_Environment instance
|
||||||
|
* @param DateTime|string $date A date
|
||||||
|
* @param string $modifier A modifier string
|
||||||
|
*
|
||||||
|
* @return DateTime A new date object
|
||||||
|
*/
|
||||||
|
function twig_date_modify_filter(Twig_Environment $env, $date, $modifier)
|
||||||
|
{
|
||||||
|
if ($date instanceof DateTime) {
|
||||||
|
$date = clone $date;
|
||||||
|
} else {
|
||||||
|
$date = twig_date_converter($env, $date);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $date->modify($modifier);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Converts an input to a DateTime instance.
|
* Converts an input to a DateTime instance.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
--TEST--
|
||||||
|
"date_modify" filter
|
||||||
|
--TEMPLATE--
|
||||||
|
{{ date1|date_modify('-1day')|date('Y-m-d H:i:s') }}
|
||||||
|
{{ date2|date_modify('-1day')|date('Y-m-d H:i:s') }}
|
||||||
|
--DATA--
|
||||||
|
date_default_timezone_set('UTC');
|
||||||
|
return array(
|
||||||
|
'date1' => '2010-10-04 13:45',
|
||||||
|
'date2' => new DateTime('2010-10-04 13:45'),
|
||||||
|
)
|
||||||
|
--EXPECT--
|
||||||
|
2010-10-03 13:45:00
|
||||||
|
2010-10-03 13:45:00
|
||||||
Reference in New Issue
Block a user