From: "Alex" <[email protected]>

Hi all!



I'm displaying a view on a web page. The view contains a timestamp and a
date field. The database is MySQL 5.0.x.



As raw values from timestamp fields are no eye candy, I decided to use
DBIx::Class::InflateColumn::DateTime, using its default formatter to format
the timestamp. Unfortunately, it formats the date column, too. But as the
date column has no time information, I get something like
"YYYY-MM-DDT00:00:00". I don't want the time information.



Usually, I would format the date and timestamp within the sql statement, but
I wanted to try to format it in the ResultClass. So, how do I do that?

I use to do it in the template, but I use TT which can do more than H:T:C using:

At the top of the template:
[% MACRO d(date) BLOCK; date.set_locale(lang).strftime('%e %b %Y');END -%]

Then in the template I just need to use

[% d(date_field) %]

which formats the date depending on the pattern I used in the d() macro at the top of the template.
(lang is a variable that holds the language name - 'en', 'fr'...)

You can apply this in the program too, using:

my $formatted_date = $date_field->strftime('the format you want your date to be');

or also specify a locale:

my $formatted_locale_date = $date_field->set_locale('ro')->strftime('the format you want');

Or you can apply any method from the DateTime class like:

my $localized_month_name = $date_field->set_locale('ro')->month_name;

HTH.

Octavian


_______________________________________________
List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class
IRC: irc.perl.org#dbix-class
SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/
Searchable Archive: http://www.grokbase.com/group/[email protected]

Reply via email to