Bug #45647 [Com]: strtotime() returning 1999-11-30 for 00-00-00 00:00:00

From: Date: Wed, 27 Jan 2016 18:33:31 +0000
Subject: Bug #45647 [Com]: strtotime() returning 1999-11-30 for 00-00-00 00:00:00
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-198921@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=45647&edit=1 ID: 45647 Comment by: me at navarr dot me Reported by: jon dot reed at jellyfish dot co dot uk Summary: strtotime() returning 1999-11-30 for 00-00-00 00:00:00 Status: Not a bug Type: Bug Package: Date/time related Operating System: Centos 5.1 PHP Version: 5.2.6 Block user comment: N Private report: N New Comment: @senz It is consistent. Years '0000' and '00' are different, as '00' is the two year code for 2000. The rest of the math checks out correctly. Year '0000' does weird things in PHP now, though. Previous Comments: ------------------------------------------------------------------------ [2016-01-23 10:18:01] senz at senz dot su @Derick, you are inconsistent with your opinion: https://bugs.php.net/bug.php?id=30190 and your logic is not obvious for end user, nor properly documented. Also look at this comment http://php.net/manual/en/function.strtotime.php#101702 IMHO year 0 should be considered as error, as in previous versions. Since this is BC issue. Alto this case is rare, but very misleading for inexperienced developer, when one's dev and production archs differs. ------------------------------------------------------------------------ [2008-07-28 19:17:55] derick@php.net There is no bug here, 00-00-00 means 2000-00-00, which is 1999-12-00, which is 1999-11-30. No bug, perfectly normal. ------------------------------------------------------------------------ [2008-07-28 16:40:58] jon dot reed at jellyfish dot co dot uk Description: ------------ As per bug #41523 which is reported fixed on Vista. We're running a custom build RPM of 5.2.6 It looks like this bug has reappeared: $incorrect = '1999-11-30'; $time = date('Y-m-d',strtotime('00-00-00 00:00:00')); $this->assertNotEqual($time, $incorrect); This fails SimpleTest. php -r "echo date('Y-m-d',strtotime('00-00-00 00:00:00'));" 1999-11-30 Reproduce code: --------------- echo strtotime('00-00-00 00:00:00'); Expected result: ---------------- -1 Actual result: -------------- 943920000 ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=45647&edit=1

« previous php.bugs (#198921) next »