certaines dates sont Considérant valables mais peuvent indiquer deux différentes dates réelles, aucune fonction ne sera jamais en mesure de « deviner » le format à tout moment ...
Pour aider, avec PHP> = 5.3, une nouvelle fonction a été ajoutée: date_create_from_format
- mais il n'existe pas avec PHP 5.3 <, malheureusement ...
(Voir aussi DateTime::createFromFormat
)
encore, dans l'exemple que vous avez pris, l'année 1957 est une source possible de problèmes: PHP gen travaille ralement avec UNIX Timestamps, en ce qui concerne les dates ...
Et, au moins sur les systèmes 32 bits, ceux qui ne peuvent représenter les dates entre 1970 et 2038 - comme ils comptent le nombre de secondes écoulées depuis 1970- 01-01.
Pour éviter ce problème, il est souvent une bonne idée d'utiliser la classe DateTime
, avec laquelle (quoting):
La date et l'heure est interne stockée sous la forme d'un nombre 64 bits donc toutes les dates imaginables (y compris années négatives) sont pris en charge. La gamme est d'environ 292 milliards d'années dans le passé à la même dans le futur.
(Il ne résoudra pas les problèmes d'analyse syntaxique avec PHP 5.3 <, mais ça va résoudre le problème date ... gamme)
Bonne question: 'strtotime' n'est pas génial avec les formats non américains. –
Et littéralement une seconde après avoir posté ceci, je rencontre ceci: http://pics.kuvaton.com/kuvei/month_day_year_america_failure.jpg :) –