Main Page | Report this Page
Computers Forum Index  »  Computer Languages (Perl - Modules)  »  Handle multiple input date formats?
Page 1 of 1    

Handle multiple input date formats?

Author Message
fishfry
Posted: Sat Sep 11, 2004 2:56 pm
Guest
I have a date input field and I want to be able to handle 3/22/04,
22-mar-04, March 22, 2004, etc. I looked through the Module List and
there are dozens of Date/Time routines but no way to figure out which,
if any, will do what I want.

Clues for me please?
 
Gunnar Hjalmarsson
Posted: Sat Sep 11, 2004 3:34 pm
Guest
fishfry wrote:
Quote:
I have a date input field and I want to be able to handle 3/22/04,
22-mar-04, March 22, 2004, etc. I looked through the Module List
and there are dozens of Date/Time routines but no way to figure out
which, if any, will do what I want.

No way? Of course there is. One way is to browse the descriptions at
http://search.cpan.org/.

Quote:
Clues for me please?

http://search.cpan.org/perldoc?Date%3A%3AParse

--
Gunnar Hjalmarsson
Email: http://www.gunnar.cc/cgi-bin/contact.pl
 
Jürgen Exner
Posted: Sat Sep 11, 2004 4:40 pm
Guest
fishfry wrote:
Quote:
I have a date input field and I want to be able to handle 3/22/04,

Would this be the 22 of April in the year 2003 or the 22 of March in year
2004?

And you are lucky that there are no 22 months in the year. If you would have
used e.g. 05 instead in your example, then this would be 3rd of May 2004 in
most parts of the world.
And of course this doesn't even begin to address the complexity of any but
the Gregorian calender, e.g. the Hebrew calender, the Islamic calender, the
Japanese imperial calender, etc, etc. are left out.

If you allow a free form text field for date entry then the values you
receive will be useless.

Quote:
22-mar-04, March 22, 2004, etc. I looked through the Module List and
there are dozens of Date/Time routines but no way to figure out which,
if any, will do what I want.

Clues for me please?

Familiarize yourself with date formats that people actually use and you will
notice that an automatic "detection" ends up being an automated guess.

_YOU_ must define and enforce the format or people will enter dates in any
of dozens of ambiguous formats where no software or human can make a safe
call. You could just as well use a rand(), that's easier to do.

jue
 
Gunnar Hjalmarsson
Posted: Sat Sep 11, 2004 9:49 pm
Guest
Jürgen Exner wrote:
Quote:
fishfry wrote:
I have a date input field and I want to be able to handle
3/22/04,

If you allow a free form text field for date entry then the values
you receive will be useless.

_YOU_ must define and enforce the format or people will enter dates
in any of dozens of ambiguous formats where no software or human
can make a safe call.

To the OP:
Even if I chose to answer your question directly, I agree with Jürgen.
What you are trying to do appears to be a bad idea.

--
Gunnar Hjalmarsson
Email: http://www.gunnar.cc/cgi-bin/contact.pl
 
Charles DeRykus
Posted: Sun Sep 12, 2004 1:34 am
Guest
In article <BLOCKSPAMfishfry-EFAC67.03554711092004@netnews.comcast.net>,
fishfry <BLOCKSPAMfishfry@your-mailbox.com> wrote:
Quote:
I have a date input field and I want to be able to handle 3/22/04,
22-mar-04, March 22, 2004, etc. I looked through the Module List and
there are dozens of Date/Time routines but no way to figure out which,
if any, will do what I want.


I agree with suggestions to enforce the format but you
may find Date::Manip useful for dealing with potential
variability.

For instance, if you specify "month day year", Date::Manip
handles several variants:

# perl -MDate::Manip -le 'print &ParseDate("3/22/04")'
2004032200:00:00

# perl -MDate::Manip -le 'print &ParseDate("March 22, 2004")'
2004032200:00:00

# perl -MDate::Manip -le 'print &ParseDate("mar-22-04")'
2004032200:00:00

perl -MDate::Manip -le 'print &ParseDate("03.22.04")'
2004032200:00:00

--
Charles DeRykus
 
 
Page 1 of 1    
All times are GMT
The time now is Wed Dec 02, 2009 4:18 am