time::parsedate(3)
NAME
Time::ParseDate -- date parsing both relative and absolute
SYNOPSIS
use Time::ParseDate; $seconds_since_jan1_1970 = parsedate("12/11/94 2pm", NO_RELATIVE => 1) $seconds_since_jan1_1970 = parsedate("12/11/94 2pm", %options)
OPTIONS
- Date parsing can also use options. The options are as
follows: - FUZZY -> it's okay not to parse the entire date
- string
NOW -> the "current" time for relative times - (defaults to time())
ZONE -> local timezone (defaults to $ENV{TZ})
WHOLE -> the whole input string must be parsed
GMT -> input time is assumed to be GMT, not - localtime
UK -> prefer UK style dates (dd/mm over - mm/dd)
DATE_REQUIRED -> do not default the date
TIME_REQUIRED -> do not default the time
NO_RELATIVE -> input time is not relative to NOW
TIMEFIRST -> try parsing time before date [not de - fault]
PREFER_PAST -> when year or day of week is am - bigueous, assume past
PREFER_FUTURE -> when year or day of week is am - bigueous, assume future
SUBSECOND -> parse fraction seconds
VALIDATE -> only accept normal values for HHMMSS, - YYMMDD. Otherwise
days like -1 might give the last day ofthe previous month.
DATE FORMATS RECOGNIZED
- Absolute date formats
- Dow, dd Mon yy
Dow, dd Mon yyyy
Dow, dd Mon
dd Mon yy
dd Mon yyyy
Month day{st,nd,rd,th}, year
Month day{st,nd,rd,th}
Mon dd yyyy
yyyy/mm/dd
yyyy/mm
mm/dd/yy
mm/dd/yyyy
mm/yy
yy/mm (only if year > 12, or > 31 if UK)
yy/mm/dd (only if year > 12 and day < 32, or - year > 31 if UK)
dd/mm/yy (only if UK, or an invalid mm/dd/yy or - yy/mm/dd)
dd/mm/yyyy (only if UK, or an invalid mm/dd/yyyy)
dd/mm (only if UK, or an invalid mm/dd) - Relative date formats:
count "days"
count "weeks"
count "months"
count "years"
Dow "after next"
Dow (requires PREFER_PAST or- PREFER_FUTURE)
"next" Dow
"tomorrow"
"today"
"yesterday"
"last" dow
"last week"
"now"
"now" "+" count units
"now" "-" count units
"+" count units
"-" count units
count units "ago" - Absolute time formats:
hh:mm:ss[.ddd]
hh:mm
hh:mm[AP]M
hh[AP]M
hhmmss[[AP]M]
"noon"
"midnight"- Relative time formats:
count "minuts"
count "seconds"
count "hours"
"+" count units
"+" count
"-" count units
"-" count
count units "ago"- Timezone formats:
[+-]dddd
GMT[+-]d+
[+-]dddd (TZN)
TZN- Special formats:
[ d]d/Mon/yyyy:hh:mm:ss [[+-]dddd]
yy/mm/dd.hh:mm
DESCRIPTION
This module recognizes the above date/time formats. Usu
ally a date and a time are specified. There are numerous
options for controlling what is recognized and what is
not.
The return code is always the time in seconds since Jan
uary 1st, 1970 or undef if it was unable to parse the
time.
If a timezone is specified it must be after the time.
Year specifications can be tacked onto the end of absolute
times.
If "parsedate()" is called from array contect, then it
will return two elements. On sucessful parses, it will
return the seconds and what remains of its input string.
On unsucessful parses, it will return "undef" and an error
string.
EXAMPLES
- $seconds = parsedate("Mon Jan 2 04:24:27 1995");
$seconds = parsedate("Tue Apr 4 00:22:12 PDT - 1995");
$seconds = parsedate("04.04.95 00:22", ZONE => - PDT);
$seconds = parsedate("Jan 1 1999 11:23:34.578", - SUBSECOND => 1);
$seconds = parsedate("122212 950404", ZONE => PDT, - TIMEFIRST => 1);
$seconds = parsedate("+3 secs", NOW => 796978800);
$seconds = parsedate("2 months", NOW => - 796720932);
$seconds = parsedate("last Tuesday"); - ($seconds, $remaining) = parsedate("today is the
- day");
($seconds, $error) = parsedate("today is", - WHOLE=>1);
AUTHOR
- David Muir Sharnoff <muir@idiom.com>. Copyright (C)
1996-1999 All Rights Reserved. Use and redistribution
allowed at user's own risk.