I’m looking for a function identical to DateTime::createFromFormat but I need it to work in an environment running a version of PHP which is older than v5.3.
Basically I need to provide a format, like you’d use with the Date() function, and I then need to parse/validate a string against that format, and return a timestamp if the string is formatted correctly and a valid date.
Anyone know where I can find something like that, or do I have to write it myself?
Again, this has to work with a specific format, provided as an argument. The format could be anything, so there’s no guarantee I can just use strtotime().
DateTime::createFromFormatanddate_parse_from_formathave been added in PHP 5.3 because there was a high demand for that feature, especially from developpers who code for users who don’t use US date/time formats.Before those, you had to develop a specific function to parse the format you were using ; with PHP < 5.3, what is generally done is :
Which means applications and developpers generally didn’t allow for that many formats, as each format meant one different additionnal validation+parsing function.
If you really need that kind of function, that allows for any possible format, I’m afraid you’ll kind of have to write it yourself 🙁
Maybe taking a look at the sources of
date_parse_from_formatcould help, if you understand C code ? It should be in something likeext/date/php_date.c— but doesn’t seem to be that simple : it’s calling thetimelib_parse_from_formatfunction, which is defined inext/data/lib/parse_date.c, and doesn’t look that friendly ^^