title: PHP DateTime with invalid Month or Day
body: <p>I'm using docker with an php:7.4-fpm, nginx and symfony 4.4.</p>
  
  <p>While testing my API with Behat i'm confused by the handling of "new DateTime()" with invalid Dates.</p>
  
  <p>Query: &amp;startDate=1900-00-00&amp;endDate=2100-00-31</p>
  
  <pre><code>new DateTime($startDate); // 1899-11-30
  new DateTime($endDate); // 2099-12-31
  </code></pre>
  
  <p>Query: &amp;startDate=1900-99-01</p>
  
  <pre><code>// Failed to parse time string (1900-99-01)
  </code></pre>
  
  <p>Query: &amp;endDate=2100-99-31</p>
  
  <pre><code>// Failed to parse time string (2100-99-31)
  </code></pre>
  
  <p>Why is the month "00" ok, and not "99"?
  Why is the startDate "1899-11-30" and not "1899-12-31"?</p>
  
  <p>Can someone explain this behavior?</p>