title: PHP's DateTime Format method is adding a second in PHP
body: <p>I have a bit of code that will change a string DateTime into DateTime objects</p>
  
  <pre><code>case 'datetime':
     if(!$value instanceof \DateTime){
     $variable = new \DateTime($value, new \DateTimeZone('US/Central'));
     if(!$variable){
        $errorarray = \Datetime::getLastErrors();
        throw new ErrorException('DateTime Error: '. explode(' ', $errorarray['errors']));
     }
  break; 
  </code></pre>
  
  <p>When I insert a string like '1999-01-01T00:00' I will get a object like</p>
  
  <pre><code>class DateTime#439 (3) {
    public $date =&gt;
    string(26) "1999-01-01 00:00:00.000000"
    public $timezone_type =&gt;
    int(3)
    public $timezone =&gt;
    string(10) "US/Central"
  }
  </code></pre>
  
  <p>So I was writing some test code on phpUnit and noticed an error here is the code I used and the results I got:</p>
  
  <pre><code>$this-&gt;assertEquals('1999-01-01T00:00', $datetime-&gt;format('Y-m-d\TH:m'));
  </code></pre>
  
  <pre><code>1) tests\genericObjectTest::testStrictType
  Failed asserting that two strings are equal.
  --- Expected
  +++ Actual
  @@ @@
  -'1999-01-01T00:00'
  +'1999-01-01T00:01'
  </code></pre>
  
  <p>Why did datetime->format add a second to the time? When dumping out Class I see i doesn't contain the additional second. I looked around the internet everywhere and can't find the problem. If I change my code to </p>
  
  <pre><code>$datetime = new \DateTime('1999-01-01T00:00', new \DateTimeZone('US/Central'));
  $this-&gt;assertEquals($datetime, $this-&gt;GenericObject-&gt;getField('datetime'));
  </code></pre>
  
  <p>I get a passing test. Is this a bug or an unintended feature? I'm using PHP 7.3.9</p>