Edit report at https://bugs.php.net/bug.php?id=62927&edit=1
ID: 62927 Updated by: ras...@php.net Reported by: dan at chirica dot net Summary: date function peculiar return for 11/04/2012 -Status: Feedback +Status: Not a bug Type: Bug Package: Date/time related Operating System: Ubuntu 10.4 PHP Version: 5.3.2 Block user comment: N Private report: N New Comment: You have discovered Daylight Savings Time. DST changes the first Sunday in November which is Nov.4. Your output looks very wrong because you are using 'h' instead of 'H' so you are printing 12-hour hours instead of 24. Make it an 'H' instead and you will see they are 23 hours apart. Adding 24*3600 over a DST change is going to change the time by either 23 or 25 hours, never 24. This is why we have DateTime::add() Previous Comments: ------------------------------------------------------------------------ [2012-08-28 01:56:03] ahar...@php.net What time zone do you have set? ------------------------------------------------------------------------ [2012-08-27 20:58:29] dan at chirica dot net $ php -v PHP 5.3.2-1ubuntu4.17 with Suhosin-Patch (cli) (built: Jun 19 2012 03:21:35) Copyright (c) 1997-2009 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies with Suhosin v0.9.29, Copyright (c) 2007, by SektionEins GmbH $ cat date.php <?php $date1 = 1352012400; //$date2 = $date1 + 86400 which should be next day $date2 = 1352098801; echo "date1: " . date ("Y-m-d_h:i:s", $date1) . "\n"; echo "date2: " . date ("Y-m-d_h:i:s", $date2) . "\n"; //Output //date1: 2012-11-04_12:00:00 //date2: 2012-11-04_11:00:01 ?> $php date.php date1: 2012-11-04_12:00:00 date2: 2012-11-04_11:00:01 Similar behavior on Mac OS 10.8 with PHP PHP (MAMP) 5.3.2 (cli) (built: Mar 5 2010 16:45:34) ------------------------------------------------------------------------ [2012-08-26 18:19:03] andreas at heigl dot org I can NOT reproduce the issue on MacOS X 10.7 Here is the output of my console $ php -v PHP 5.3.16 (cli) (built: Aug 17 2012 11:13:15) Copyright (c) 1997-2012 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies with Xdebug v2.2.1, Copyright (c) 2002-2012, by Derick Rethans $ cat /tmp/datetest.php <?php $date1 = 1352012400; //$date2 = $date1 + 86400 which should be next day $date2 = 1352098801; echo "date1: " . date ("Y-m-d_h:i:s", $date1) . "\n"; echo "date2: " . date ("Y-m-d_h:i:s", $date2) . "\n"; $ php -f /tmp/datetest.php date1: 2012-11-04_08:00:00 date2: 2012-11-05_08:00:01 ------------------------------------------------------------------------ [2012-08-24 18:33:29] dan at chirica dot net Description: ------------ --- >From manual page: http://www.php.net/function.date#refsect1-function.date- returnvalues --- Test script: --------------- $date1 = 1352012400; //$date2 = $date1 + 86400 which should be next day $date2 = 1352098801; echo "date1: " . date ("Y-m-d_h:i:s", $date1) . "\n"; echo "date2: " . date ("Y-m-d_h:i:s", $date2) . "\n"; //Output //date1: 2012-11-04_12:00:00 //date2: 2012-11-04_11:00:01 Expected result: ---------------- date1: 2012-11-04_12:00:00 date2: 2012-11-05_12:00:00 Actual result: -------------- //Output //date1: 2012-11-04_12:00:00 //date2: 2012-11-04_11:00:01 ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=62927&edit=1