Sep 12, 2007 19:54
Написал собственный фильтр для TT. Это оказалось достаточно просто:
package MyApp::View::TT;
use strict;
use base 'Catalyst::View::TT';
use POSIX 'strftime';
__PACKAGE__->config({
...
FILTERS => {
'date' => \&filter_date
},
...
});
=head2 filter_date
Фильтр.
Форматирует дату: преобразовывает её из вида, возвращаемого MySQL YYYY-MM-DD
в определяемую локалью DD.MM.YYYY
=cut
sub filter_date {
my $date = shift;
return unless $date;
my ($yyyy, $mm, $dd) = ($date =~ /(\d+)\D+(\d+)\D+(\d+)/) or return;
return strftime('%x', 0, 0, 0, $dd, $mm-1, $yyyy-1900);
} # sub filter_date
Теперь даты выводятся в правильном виде, как ДД.ММ.ГГГГ, а не как ГГГГ-ММ-ДД. Причём вызывать фильтр гораздо удобнее, чем обычные функции:[% some_date | date %]
программизм,
tt,
perl,
catalyst