On 6. 1. 2014 21:41, Bill Moseley wrote:

On Mon, Jan 6, 2014 at 7:18 AM, Adam Witney <awit...@sgul.ac.uk
<mailto:awit...@sgul.ac.uk>> wrote:

    Hi,

    I have a date field in a DBIx::Class Result class using
    InflateColumn::DateTime. When I pass this through a Catalyst/TT
    application, the date is presented in YYYY-MM-DD format.

    I can modify this to DD/MM/YYYY in my TT template with
    object.dmy('/'), but I would prefer to change the default DateTime
    stringification, however I am not quite sure where or how to do this?

    Any ideas greatly appreciated.


Seem like formatting in the template is the right place -- may want to
have different formats in different places in your app.   Then you might
also think about how best to localize.

One idea is to localize a set of names for a set of formats:

[% dt_fmt = c.localize( '_DT_DATE_ONLY' );
foo.some_dt_object.strftime(  dt_fmt ) | html %]


I have also used a function that does the above, but also clones and
sets the time zone and locale based on the user's preferences:

[% user_time( foo.event_start, '_DT_TIMESTAMP_WITH_ZONE' ) | html %]

Hi Bill,

Thanks for your email. I agree that the template seems like a good place for this, but to give a little extra detail.

I have a form that is used for both object create and editing. When I edit an object I have this in my controller:

$c->stash(formdata => $object);

and in the template:

<input name="datefield" type="text" value="[% formdata.datefield.dmy('/') %]" />

But when creating a new object, if the form validation fails I pass the form data back to the form like so:

$c->stash( formdata => $c->request->params );

But now the datefield is a text string and formdata.datefield.dmy('/') prints blank.

I was thinking that if I could define my DateTime stringification to my required format centrally then I could just use this in the template

<input name="datefield" type="text" value="[% formdata.datefield %]" />

and both scenarios would be happy.

Is the only way to do this to put more code in the template?

Thanks again for your help

Adam

_______________________________________________
List: Catalyst@lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/

Reply via email to