Validate a date
use CGI::Untaint; my $handler = CGI::Untaint->new($q->Vars); my $date = $handler->extract(-as_date => 'date');
\$1
This Input Handler verifies that it is dealing with a reasonable date. Reasonably means anything that Date::Manip thinks is sensible, so you could use any of (for example):
\*(L"December 12, 2001\*(R" \*(L"12th December, 2001\*(R" \*(L"2001-12-12\*(R" \*(L"next Tuesday\*(R" \*(L"third Wednesday in March\*(R"
See Date::Manip for much more information on what date formats are acceptable.
The resulting date will be a Date::Simple object. Date::Simple for more information on this. By default ambiguous dates of the format 08/09/2001 will be treated as \s-1UK\s0 style (i.e. 8th September rather than 9th August)
If you want to change this, subclass it and override date_format()
Date::Manip does not play nicely with taint mode. In order to work around this we locally clobber Date::Manip's 'timezone' code. As we're only interested in dates rather than times, this shouldn't be much of an issue. If it is, then please let me know!
Date::Simple. Date::Manip.
Tony Bowden
Please direct all correspondence regarding this module to:
[email protected]
Copyright (C) 2001-2005 Tony Bowden. All rights reserved.
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.