title: Different results for date() and gmdate()
body: <p>I found something I can't really explain, maybe someone here can give me a hint.</p>
  
  <p>I have the following test code, that prints 2 formatted timestamps, one for the 31.03.2013 and one for 31.03.2014, using <code>date()</code>and <code>gmdate()</code>:</p>
  
  <pre><code>&lt;?php
  
  function print_date($timestamp, $year) {
    // Add timezone offset for germany
    $timestamp += 3600;
    print "in $year\n";
    print "date:   " . date('d.m.Y H:i:s', $timestamp) . "\n";
    print "gmdate: " . gmdate('d.m.Y H:i:s', $timestamp) . "\n";
    print "\n";
  }
  
  $end_2013 = 1364684400; // 31.03.2013
  $end_2014 = 1396216800; // 31.03.2014
  print_date($end_2013, '2013');
  print_date($end_2014, '2014');
  
  print "Default timezone: " . date_default_timezone_get() . "\n";
  </code></pre>
  
  <p>The result surprises me:</p>
  
  <pre><code>in 2013
  date:   31.03.2013 01:00:00
  gmdate: 31.03.2013 00:00:00
  
  in 2014
  date:   31.03.2014 01:00:00
  gmdate: 30.03.2014 23:00:00
  
  Default timezone: Europe/Berlin
  </code></pre>
  
  <p>Where does the difference in 2014 come from? My first thought is daylight savings time, but why doesn't that have an effect in 2013?
  Why are there 2 hours difference in 2014 but only 1 hour difference in 2013?</p>