On Tue, 17 Nov 2015, Martin Keckeis wrote:

> Hello together,
> 
> i just noticed that the date + timezone switching changed a lot last time?
> 
> tl;dr https://3v4l.org/pSplY
> 
> When taking a old datetime:
> $date = \DateTime::createFromFormat('d.m.Y H:i:s', '01.01.1900 00:00:00',
> new \DateTimeZone('Europe/Berlin'));
> 
> and switching between the given timezone and UTC, the date is sometimes
> corrected with some minutes+seconds and sometimes not.

Berlin had some interesting timezone rules:

Europe/Berlin  Fri Mar 31 23:06:31 1893 UT = Fri Mar 31 23:59:59 1893 LMT 
isdst=0 gmtoff=3208
Europe/Berlin  Fri Mar 31 23:06:32 1893 UT = Sat Apr  1 00:06:32 1893 CET 
isdst=0 gmtoff=3600
Europe/Berlin  Sun Apr 30 21:59:59 1916 UT = Sun Apr 30 22:59:59 1916 CET 
isdst=0 gmtoff=3600
Europe/Berlin  Sun Apr 30 22:00:00 1916 UT = Mon May  1 00:00:00 1916 CEST 
isdst=1 gmtoff=7200

But there was a bug in PHP where we'd ignore the first block, and hence 
picked a UTC offset of gmtoff=3208 for 1900-01-01, which was wrong. 
That's now fixed again.

cheers,
Derick

-- 
http://derickrethans.nl | http://xdebug.org
Like Xdebug? Consider a donation: http://xdebug.org/donate.php
twitter: @derickr and @xdebug
Posted with an email client that doesn't mangle email: alpine

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to