NAME
Template::Plugin::DateTime::Format - format DateTime objects from inside TT with DateTime::Format-style formatters
SYNOPSIS
[% USE f = DateTime::Format('DateTime::Format::Strptime', { pattern => "%T" }) %]
[% f.format(datetime_object) %]
DESCRIPTION
Oftentimes, you have a DateTime object that you want to render in your template. However, the default rendering (2008-01-01T01:23:45) is pretty ugly. Formatting the DateTime with a DateTime::Format object is the usual solution, but there's usually not a nice place to put the formatting code.
This plugin solves that problem. You can create a formatter object from within TT and then use that object to format DateTime objects.
CREATING AN OBJECT
Creating a formatter instance is done in the usual TT way:
[% USE varname = DateTime::Format( ... args ... ) %]
This creates a new formatter and calls it varname
.
The constructor takes up to three arguments. The first argument is the name of the formatter class. It is required, and the named class must follow the DateTime::Format API. An exception will be thrown if the class cannot be loaded.
The second argument is a reference to pass to the formatter's constructor. If it is an array reference, the array will be dereferenced before being passed to new
as @_
. Otherwise, the single reference is passed to the constructor.
The third argument is optional and is the rest of @_
to pass to format_datetime
after the DateTime object. I don't know if this is actually allowed by the API, but I figured it might come in handy.
FORMATTING DATES
Once you've created the object, invoke the format
method with the DateTime object you'd like to format. The result of format_datetime
is returned.
METHODS
new
Called by TT to create a new formatter.
format($datetime)
Formats $datetime
.
REPOSITORY
https://github.com/neilbowers/Template-Plugin-DateTime-Format
AUTHOR
Jonathan Rockway <jrockway@cpan.org>
COPYRIGHT AND LICENSE
Copyright (c) 2008 Jonathan Rockway.
This module is free software. You may redistribute it under the same terms as perl itself.