NAME
Template::Plugin::DtFormatter - Easily create formatted string from DateTime objects
SYNOPSIS
[% USE DtFormatter %]
[% DtFromatter.format(mydt, 'human') %]
15/February/2007, 11:55
[% DtFromatter.format(mydt, 'hm') %]
11:55
DESCRIPTION
This modules provides a simple mean of formatting DateTime object in TT templates. It provides some predefined formatter formatters
, and you can extend it by providing your own or overriding existing ones.
The advantage of dtformatter
is that, basically, it provides human-readable shortcuts for format strings, which allow you to just modify the formatter in the module configuration to affect all the dates displayed using it.
Use this way:
[% USE DtFormatter %]
[% DtFormatter.format(DateTime_object, formatter_name) %]
PREDEFINED FORMATTERS
These are the predefined formatters
. They all use DateTime::Format::Strptime, so that is the only dependency of this module.
sql => DateTime::Format::Strptime->new(pattern => '%Y-%m-%d %H:%M:%S'),
sql_date => DateTime::Format::Strptime->new(pattern => '%Y-%m-%d'),
human => DateTime::Format::Strptime->new(pattern => '%d/%m/%Y, %H:%M'),
human2 => DateTime::Format::Strptime->new(pattern => '%d-%m-%Y, %H:%M'),
human_date => DateTime::Format::Strptime->new(pattern => '%d/%m/%Y'),
human_date2 => DateTime::Format::Strptime->new(pattern => '%d-%m-%Y'),
h => DateTime::Format::Strptime->new(pattern => '%H'),
hm => DateTime::Format::Strptime->new(pattern => '%H:%M'),
hms => DateTime::Format::Strptime->new(pattern => '%H:%M:%S'),
year => DateTime::Format::Strptime->new(pattern => '%Y'),
dm => DateTime::Format::Strptime->new(pattern => '%d/%m'),
USER DEFINED FORMATTERS
You can define the formatters (or override existing ones), in two ways. The first is to provide arguments for DateTime::Format::Strptime constructur using an hashref:
[% USE DtFormatter(
pstrptime => {
'jazz' => {
locale => 'it_IT',
pattern => '%d %B %Y'
},
'second_hour' => {
pattern => '%S:%H'
}
}
) %]
[% DtFormatter.format(DateTime_object, 'jazz') %]
You can also provide any valid DateTime format object. For instance, if you want an Excel-style date and have a DateTime::Format::Excel
object in excel_formatter_obj
:
[% USE DtFormatter( formatters =>
{ 'excel' => excel_formatter_obj }
) %]
[% DtFormatter.format(DateTime_object, 'excel') %]
The old formatters
parameter is deprecated, issues a warning, and will be removed in version 2.00.
TODO
Tests.
SEE ALSO
AUTHOR
Michele Beltrame, mb@italpro.net
.
LICENSE
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.