title: Negative hours value in DateInterval::format()
body: <p>i need to convert number of seconds to date, and then show time difference as days, hours and seconds.</p>
  
  <p>But for some reason after some number of days, in last hour before next full day I get negative hours value. Right now this problem occures if date is greater then 38 days (it's before 1st November). Maybe tomorrow this value will be different, I'm not sure.</p>
  
  <p>Code:</p>
  
  <pre><code>$s = 84600; // 23.5 h in seconds
  $s += (60*60*24)*38; // add 38 days in seconds
  $d = (new \DateTime())-&gt;modify("-".$s."seconds");
  echo (new \DateTime())-&gt;diff($d)-&gt;format("%a days %h:%I");
  // shows: 38 days -1:30
  </code></pre>
  
  <p>Same code with 1 day of difference:</p>
  
  <pre><code>$s = 84600; // 23.5 h in seconds
  $s += (60*60*24)*37; // add 37 days in seconds
  $d = (new \DateTime())-&gt;modify("-".$s."seconds");
  echo (new \DateTime())-&gt;diff($d)-&gt;format("%a days %h:%I");
  // shows: 37 days 23:30
  </code></pre>
  
  <p>PHP version 5.6.2. Tested on localhost, server and <a href="http://sandbox.onlinephpfunctions.com/" rel="nofollow">http://sandbox.onlinephpfunctions.com/</a> with same result.</p>