Just because there is a way to explain a certain behavior doesn&#x27;t mean it&#x27;s the right way for the code to behave. This definitely violates the law of least surprise.<p>Furthermore, no one who writes &quot;00-00-00&quot; means &quot;2000-00-00&quot; because that&#x27;s not a real date. We can say with certainty that no one actually wants &quot;00-00-00 00:00:00&quot; to mean a date in 1999!<p>That string -- a date with all zeros -- is common in MySQL when an empty value is passed to a not-null date field, so we can be even more certain that interpreting that weird date as &quot;some time in 1999&quot; is going to introduce lots of bugs.<p>It would make much, much more sense for PHP to just fail to parse the date.