shoorick: (Default)
[personal profile] shoorick
Написал собственный фильтр для 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 %]

Date: 2008-04-15 02:53 pm (UTC)
From: [identity profile] r3code.livejournal.com
А встроенный в TT чем не гож?
[% date.format(date.now, '%d.%m.%Y') %]

Чем

Date: 2008-04-15 06:23 pm (UTC)
From: [identity profile] shoorick.livejournal.com
Видимо, не знал про него.

Profile

shoorick: (Default)
shoorick

December 2016

S M T W T F S
    1 23
45678910
11121314151617
18 19 2021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 21st, 2026 06:16 am
Powered by Dreamwidth Studios