ID: 50744 Updated by: der...@php.net Reported By: nuke at psu dot edu -Status: Open +Status: Bogus Bug Type: Date/time related Operating System: * PHP Version: 5.3SVN-2010-01-14 (snap) New Comment:
Thank you for taking the time to write to us, but this is not a bug. Please double-check the documentation available at http://www.php.net/manual/ and the instructions on how to report a bug at http://bugs.php.net/how-to-report.php PHP implements the ISO 8601 calendar (which is a proleptic Gregorian calendar with modifications for the year 0, see http://en.wikipedia.org/wiki/Gregorian_calendar#Proleptic_Gregorian_calendar and http://en.wikipedia.org/wiki/ISO_8601#Dates). The reason is that the switch over from the Julian calendar to the Gregorian calendar wasn't in 1752 for every locality (see http://en.wikipedia.org/wiki/Gregorian_calendar#Timeline) If I were to implement this correctly, then you would have to set in which locality the calendar was used. I would also have to add support for very specific rules for for example Sweden which messed up and required a February 30th at one point: See the 5th and 6th paragraph of http://en.wikipedia.org/wiki/Gregorian_calendar#Adoption_in_Europe Previous Comments: ------------------------------------------------------------------------ [2010-01-14 08:03:59] nuke at psu dot edu Description: ------------ In ext/date/lib/interval.c around line 58, there should be a flag to test for years before, say, 1753, and throw a warning for people to use the Calendar functions, assuming those functions are doing it correctly. I'd check the Calendar functions today, esp. GregoriantoJD, except that it's already 3am here. Besides, that'd be a different test. Here's one webpage about the issue I found in 1752: http://www.genealogytoday.com/columns/everyday/030902.html Reproduce code: --------------- $one = new DateTime("1752-09-02 00:00:00"); $two = new DateTime("1752-09-14 00:00:00"); $diff = $one->diff($two); echo $diff->days."=1"; Expected result: ---------------- 1=1 Actual result: -------------- 12=1 ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=50744&edit=1