Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PHP date validation similar to ASP isDate() for user submitted dates, times, or date/time pairs

I am converting an ASP application to PHP and am having difficulty transcribing date validation functionality.

In ASP, I have the function isDate(), which allows me to validate a date regardless of its format. So if someone enters any of the following, isDate() returns true:

1/1/2012
January 1, 2012
Jan 12, 2010 1:00 pm
1/1/2012 1:32 pm

The benefit is that I can let the user enter the data and time in whatever format they choose. After that, with minimal effort, I can update a database without doing any post processing (assuming true is returned). E.g.:

UPDATE my_table SET date_field = @date_var WHERE my_id = @id_var
[note: SQL Server 2008]

With PHP, I’m finding that validating a date/time is more complex. I’ve reviewed the assorted questions posted here as well as the documentation and there doesn’t seem to be a straightforward way to validate a date or time or date/time combination easily.

I’m wondering if there are classes available to do the grunt work. Something that will work like isDate() and send me back a true/false based on a user entered date/time/date & time.

Thanks.

like image 467
Ralph M. Rivera Avatar asked Dec 09 '22 03:12

Ralph M. Rivera


1 Answers

You can check the return value of strtotime() to see if a date can be parsed:

if(strtotime($date) !== false) {
   // valid date/time
}

This is also how to normalize all the dates, by storing them as the return value of strtotime().

like image 149
Tim Cooper Avatar answered Jan 18 '23 09:01

Tim Cooper