package Rose::HTML::Form::Field::Date; use strict; use base 'Rose::HTML::Form::Field::DateTime'; our $VERSION = '0.606'; sub inflate_value { my($self, $date) = @_; return undef unless(ref $date || (defined $date && length $date)); $date = $self->date_parser->parse_datetime($date); return $date unless(UNIVERSAL::isa($date, 'DateTime')); $date->set(hour => 0, minute => 0, second => 0, nanosecond => 0); return $date; } sub init_output_format { '%Y-%m-%d' } 1; __END__ =head1 NAME Rose::HTML::Form::Field::Date - Text field that inflates valid dates into L objects. =head1 SYNOPSIS $field = Rose::HTML::Form::Field::Date->new( label => 'Date', name => 'date', default => '12/31/2002'); print $field->internal_value; # "2002-12-31T00:00:00" print $field->output_value; # "2002-12-31" $field->input_value('blah'); # "Could not parse date: blah" $field->validate or warn $field->error; $field->input_value('4/30/1980'); $dt = $field->internal_value; # DateTime object print $dt->day_name; # Wednesday print $field->html; ... =head1 DESCRIPTION L is a subclass of L that handles dates, but not times. (The time is always forced to be 00:00:00.) Valid input is converted to the format "YYYY-MM-DD" on output. See the L documetation for more information. =head1 AUTHOR John C. Siracusa (siracusa@gmail.com) =head1 LICENSE Copyright (c) 2010 by John C. Siracusa. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.