title: PHP $date->format(DateTime::ISO8601) returning different timezone offset
body: <p>Ok, i'm stumped. Here are two date objects i have:</p>
  
  <pre><code>// $startDate value
  DateTime::__set_state(array(
     'date' =&gt; '2017-11-05 00:00:00.000000',
     'timezone_type' =&gt; 3,
     'timezone' =&gt; 'America/Chicago',
  ))
  
  // $endDate value
  DateTime::__set_state(array(
     'date' =&gt; '2017-11-05 23:59:00.000000',
     'timezone_type' =&gt; 3,
     'timezone' =&gt; 'America/Chicago',
  ))
  </code></pre>
  
  <p>They both have the exact same timezone information. However when i run <code>$startDate-&gt;format(DateTime::ISO8601)</code> and <code>$endDate-&gt;format(DateTime::ISO8601)</code> I get different timezone offsets.</p>
  
  <pre><code>// $startDate-&gt;format(DateTime::ISO8601)
  2017-11-05T00:00:00-0500
  
  // $endDate-&gt;format(DateTime::ISO8601)
  2017-11-05T23:59:00-0600
  </code></pre>
  
  <p>Any idea as to what may be causing this?</p>