[html-formfu] DateTime: problem with "hour" select

Carl Franks fireartist at gmail.com
Fri Jan 9 14:57:38 GMT 2009


2009/1/9 Jens Schwarz <blacky6767 at gmx.de>:
> Hi,
>
> I have a problem with the hour selectbox of the DateTime element introduced in 0.03006: I use the DateTime element to represent a datetime column in my mysql db. My yml's look like this (one for creating a record, one for editing a record):
>
> (...)
> - type: DateTime
>  name: mydatetime
>  label: mydatetime
>  year:
>    prefix: "-year-"
>  month:
>    prefix: "-month-"
>  day:
>    prefix: "-day-"
>  hour:
>    prefix: "-hour-"
>  minute:
>    prefix: "-minute-"
>  strftime: "%Y-%m-%d %H:%M:00"
> (...)
>
> (I hope I use the strftime parameter correctly to produce YYYY-MM-DD HH:MM:00.)
> So what I detected is, that if I edit a record and in my db is a datetime like "2009-01-09 07:50:00", the FormFu form shows:
> "2009" "01" "09" "-hour-" "50" where I would expect "2009" "01" "09" "07" "50".
> If on the other hand the db record is "2009-01-09 17:50:00", FormFu correctly produces the selectboxes "2009" "01" "09" "17" "50".
> Is this a bug in the FormFu DateTime element or am I using this element in the wrong way?

Although it's a rather unusual behaviour you're seeing, this is down
to the old requirement that any changes to the form mean you need to
call $form->process() before rendering the form.
"changing the form" includes the case of calling $form->model->default_values()

Although most elements are simple enough that you can get away with
not doing it, the Date + DateTime elements are rather more complex,
and need process() called to ensure they're properly setup.

I'll need to update the docs to make this more clear, as the only
place I can currently find it documented, is in the docs for
$form->default_values(), and a rather incomplete explanation in
$form->process().

Carl



More information about the HTML-FormFu mailing list