in reply to How do I validate a date?
use Date::Parse; use Date::Manip qw(); sub is_valid_date_string { my $str = shift; my @elms = strptime($str); # Date::Parse will leave undefs if the elem cannot be found in the + string return 0 unless defined($elms[3]) && defined($elms[4]) && defined( +$elms[5]); my $str_r = sprintf("%4d-%02d-%02d", $elms[5]+1900, $elms[4]+1, $e +lms[3] ); # Run back trhough Date::Manip to make sure whatever we parsed is +a valid date return 0 unless Date::Manip::UnixDate($str_r,"%Y-%m-%d") eq $str_r +; return 1; }
|
|---|