This field may be used with the jQuery Datepicker plugin.
You can specify the format for the date using jQuery formatDate strings or DateTime strftime formats.
(Default format is format => '%Y-%m-%d'.)
d - "%e" - day of month (no leading zero)
dd - "%d" - day of month (two digit)
o - "%{day_of_year}" - day of the year (no leading zeros)
oo - "%j" - day of the year (three digit)
D - "%a" - day name short
DD - "%A" - day name long
m - "%{day_of_month}" - month of year (no leading zero)
mm - "%m" - month of year (two digit) "%m"
M - "%b" - month name short
MM - "%B" - month name long
y - "%y" - year (two digit)
yy - "%Y" - year (four digit)
@ - "%s" - Unix timestamp (ms since 01/01/1970)
For example:
has_field 'start_date' => ( type => 'Date', format => "dd/mm/y" );
or
has_field 'start_date' => ( type => 'Date', format => "%d/%m/%y" );
You can also set 'date_end' and 'date_start' attributes for validation of the date range. Use iso_8601
formats for these dates ("yyyy-mm-dd"); The dates can be specified either as a string, or as a subref;
the subref is evaluated at validation time.
has_field 'start_date' => ( type => 'Date', date_start => "2009-12-25", date_end => sub { DateTime->now->ymd } );
Customize error messages 'date_early' and 'date_late':
has_field 'start_date' => ( type => 'Date,
messages => { date_early => 'Pick a later date',
date_late => 'Pick an earlier date', } );
UsingwithHTML5
If the field's form has its 'is_html5' flag active, then the field's rendering behavior changes in two
ways:
• It will render as <input type="date" ... /> instead of type="text".
• If the field's format is set to anything other than ISO date format (%Y-%m-%d), then attempting to
render the field will result in a warning.
(Note that the default value for the field's format attribute is, in fact, the ISO date format.)