DateTime::createFromFormat in PHP < 5.3.0

后端 未结 5 508
甜味超标
甜味超标 2021-01-20 04:06

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 ne

5条回答
  •  攒了一身酷
    2021-01-20 04:25

    DateTime::createFromFormat and date_parse_from_format have 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 :

    • Decide which format will be accepted by the application
    • Display some message saying something like "your input should be JJ/MM/AAAA" (French for DD/MM/YYYY)
    • Check that the input is OK, regarding to that format
    • And parse it to convert it to a date/time that PHP can understand.

    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_format could help, if you understand C code ? It should be in something like ext/date/php_date.c -- but doesn't seem to be that simple : it's calling the timelib_parse_from_format function, which is defined in ext/data/lib/parse_date.c, and doesn't look that friendly ^^

提交回复
热议问题