NAME
Date::RangeParser::EN - Parser for plain English date/time range strings
SYNOPSIS
use Date::RangeParser::EN;
my $parser = Date::RangeParser::EN->new;
my ($begin, $end) = $parser->parse_range("this week");
DESCRIPTION
Parses plain-English strings representing date/time ranges
METHODS
new
Returns a new instance of Date::RangeParser::EN.
Takes an optional hash of parameters:
datetime_class
By default, Date::RangeParser::EN returns two DateTime objects representing the beginning and end of the range. If you use a subclass of DateTime (or another module that implements the DateTime API), you may pass the name of this class to use it instead.
now_callback
By default, Date::RangeParser::EN uses DateTime->now to determine the current date/time for calculations. If you need to work with a different time (for instance, if you need to adjust for time zones), you may pass a callback (code reference) which returns a DateTime object.
parse_range
Accepts a string representing a plain-English date range, for instance:
today
this week
the past 2 months
next Tuesday
two weeks ago
the next 3 hours
the 3rd of next month
the end of this month
Returns two DateTime objects, reprensenting the beginning and end of the range.
TO DO
There's a lot more that this module could handle. A few items that come to mind:
allow full words instead of digits ("two weeks ago" vs "2 weeks ago")
allow simple, easily-parsable ranges ("1/1/2012-12/31/2012")
allow larger ranges ("between last February and this Friday")
DEPENDENCIES
AUTHORS
This module was authored by Grant Street Group (http://grantstreet.com), which was kind enough to give it back to the Perl community.
The CPAN distribution is maintained by Michael Aquilina (aquilina@cpan.org).
COPYRIGHT AND LICENSE
Copyright (C) 2012 Grant Street Group.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.