From 9c5eaac18b65038cc377c7335b32889b892cf1fc Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Wed, 10 Sep 2014 18:18:02 +0200 Subject: [PATCH] Remove mktime() and gmmktime() $is_dst parameter --- NEWS | 1 + UPGRADING | 3 + ext/date/php_date.c | 26 +-- ext/date/tests/bug27719.phpt | 67 ------- ext/date/tests/gmmktime_error.phpt | 12 +- ext/date/tests/mktime-1.phpt | 42 ++--- ext/date/tests/mktime-2.phpt | 51 ------ ext/date/tests/mktime_basic1.phpt | 5 - ext/date/tests/mktime_error.phpt | 5 +- ext/date/tests/mktime_variation7.phpt | 251 -------------------------- 10 files changed, 24 insertions(+), 439 deletions(-) delete mode 100644 ext/date/tests/bug27719.phpt delete mode 100644 ext/date/tests/mktime-2.phpt delete mode 100644 ext/date/tests/mktime_variation7.phpt diff --git a/NEWS b/NEWS index 40e6be4731f..b47565f0515 100644 --- a/NEWS +++ b/NEWS @@ -41,6 +41,7 @@ - Date: . Fixed day_of_week function as it could sometimes return negative values internally. (Derick) + . Removed $is_dst parameter from mktime() and gmmktime(). (Nikita) - DBA: . Fixed bug #62490 (dba_delete returns true on missing item (inifile)). (Mike) diff --git a/UPGRADING b/UPGRADING index 2a7efba3c76..cb976fd9ceb 100644 --- a/UPGRADING +++ b/UPGRADING @@ -63,6 +63,9 @@ PHP X.Y UPGRADE NOTES . Added hybrid sorting algo zend_sort for better performance. . Added stable sorting algo zend_insert_sort. +- Date: + . Removed $is_dst parameter from mktime() and gmmktime(). + - DBA . dba_delete() now returns false if the key was not found for the inifile handler, too. diff --git a/ext/date/php_date.c b/ext/date/php_date.c index bd6214b7458..b9e109aa096 100644 --- a/ext/date/php_date.c +++ b/ext/date/php_date.c @@ -1482,13 +1482,13 @@ PHP_FUNCTION(strtotime) /* {{{ php_mktime - (gm)mktime helper */ PHPAPI void php_mktime(INTERNAL_FUNCTION_PARAMETERS, int gmt) { - zend_long hou = 0, min = 0, sec = 0, mon = 0, day = 0, yea = 0, dst = -1; + zend_long hou = 0, min = 0, sec = 0, mon = 0, day = 0, yea = 0; timelib_time *now; timelib_tzinfo *tzi = NULL; zend_long ts, adjust_seconds = 0; int error; - if (zend_parse_parameters(ZEND_NUM_ARGS(), "|lllllll", &hou, &min, &sec, &mon, &day, &yea, &dst) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS(), "|llllll", &hou, &min, &sec, &mon, &day, &yea) == FAILURE) { RETURN_FALSE; } /* Initialize structure with current time */ @@ -1537,27 +1537,7 @@ PHPAPI void php_mktime(INTERNAL_FUNCTION_PARAMETERS, int gmt) } else { timelib_update_ts(now, tzi); } - /* Support for the deprecated is_dst parameter */ - if (dst != -1) { - php_error_docref(NULL, E_DEPRECATED, "The is_dst parameter is deprecated"); - if (gmt) { - /* GMT never uses DST */ - if (dst == 1) { - adjust_seconds = -3600; - } - } else { - /* Figure out is_dst for current TS */ - timelib_time_offset *tmp_offset; - tmp_offset = timelib_get_time_zone_info(now->sse, tzi); - if (dst == 1 && tmp_offset->is_dst == 0) { - adjust_seconds = -3600; - } - if (dst == 0 && tmp_offset->is_dst == 1) { - adjust_seconds = +3600; - } - timelib_time_offset_dtor(tmp_offset); - } - } + /* Clean up and return */ ts = timelib_date_to_int(now, &error); ts += adjust_seconds; diff --git a/ext/date/tests/bug27719.phpt b/ext/date/tests/bug27719.phpt deleted file mode 100644 index 88c17704e50..00000000000 --- a/ext/date/tests/bug27719.phpt +++ /dev/null @@ -1,67 +0,0 @@ ---TEST-- -Bug #27719 (mktime returns incorrect timestamp for dst days) ---INI-- -date.timezone=EST -error_reporting=2047 ---FILE-- - ---EXPECTF-- -1081054800 04/04/04 12:00:00 -%s -1081054800 04/04/04 12:00:00 - -1075870800 02/04/04 12:00:00 -1075867200 02/03/04 11:00:00 -1075870800 02/04/04 12:00:00 - -1081054800 04/04/04 12:00:00 -1081051200 04/03/04 11:00:00 -1081054800 04/04/04 12:00:00 - -1081065600 04/04/04 04:00:00 -1081062000 04/04/04 03:00:00 -1081062000 04/04/04 03:00:00 - -1086325200 06/04/04 01:00:00 -1086321600 06/04/04 12:00:00 -1086321600 06/04/04 12:00:00 diff --git a/ext/date/tests/gmmktime_error.phpt b/ext/date/tests/gmmktime_error.phpt index 9f5882da94b..62e62057ea7 100644 --- a/ext/date/tests/gmmktime_error.phpt +++ b/ext/date/tests/gmmktime_error.phpt @@ -18,12 +18,9 @@ $sec = 8; $mon = 8; $day = 8; $year = 2008; -$extra_arg1 = 10; -$extra_arg2 = 10; +$extra_arg = 10; -var_dump( gmmktime($hour, $min, $sec, $mon, $day, $year, $extra_arg1) ); - -var_dump( gmmktime($hour, $min, $sec, $mon, $day, $year, $extra_arg1, $extra_arg2) ); +var_dump( gmmktime($hour, $min, $sec, $mon, $day, $year, $extra_arg) ); ?> ===DONE=== --EXPECTF-- @@ -31,9 +28,6 @@ var_dump( gmmktime($hour, $min, $sec, $mon, $day, $year, $extra_arg1, $extra_arg -- Testing gmmktime() function with more than expected no. of arguments -- -Deprecated: gmmktime(): The is_dst parameter is deprecated in %s on line %d -int(1218182888) - -Warning: gmmktime() expects at most 7 parameters, 8 given in %s on line %d +Warning: gmmktime() expects at most 6 parameters, 7 given in %s on line %d bool(false) ===DONE=== diff --git a/ext/date/tests/mktime-1.phpt b/ext/date/tests/mktime-1.phpt index 87fc0df6857..86723e01aca 100644 --- a/ext/date/tests/mktime-1.phpt +++ b/ext/date/tests/mktime-1.phpt @@ -1,30 +1,21 @@ --TEST-- Check for mktime with out-of-range parameters --INI-- -error_reporting=2047 +error_reporting=E_ALL --FILE-- --EXPECT-- 2000-02-29 @@ -33,12 +24,3 @@ error_reporting=2047 2001-02-28 2001-03-01 1999-11-30 -2000-05-29 12:00:00 -2000-05-29 13:00:00 -2000-05-29 12:00:00 -2000-01-31 12:00:00 -2000-01-31 12:00:00 -2000-01-31 11:00:00 -2000-04-29 12:00:00 -2000-04-29 13:00:00 -2000-04-29 12:00:00 diff --git a/ext/date/tests/mktime-2.phpt b/ext/date/tests/mktime-2.phpt deleted file mode 100644 index 931f6375594..00000000000 --- a/ext/date/tests/mktime-2.phpt +++ /dev/null @@ -1,51 +0,0 @@ ---TEST-- -mktime() [2] ---INI-- -error_reporting=2047 ---FILE-- - ---EXPECTF-- -int(1009843200) -int(1009843200) -int(1009843200) -int(%s) -int(1025481600) -int(1025481600) -int(1025481600) -int(%s) -int(1009843200) -int(1009843200) -int(1009843200) -int(1009839600) -int(1025478000) -int(1025478000) -int(1025481600) -int(1025478000) diff --git a/ext/date/tests/mktime_basic1.phpt b/ext/date/tests/mktime_basic1.phpt index dc17c29b786..da1f3d63bfe 100644 --- a/ext/date/tests/mktime_basic1.phpt +++ b/ext/date/tests/mktime_basic1.phpt @@ -20,7 +20,6 @@ $sec = 45; $month = 7; $day = 2; $year = 1963; -$is_dst = 0; var_dump( mktime($hour) ); var_dump( mktime($hour, $minute) ); @@ -28,7 +27,6 @@ var_dump( mktime($hour, $minute, $sec) ); var_dump( mktime($hour, $minute, $sec, $month) ); var_dump( mktime($hour, $minute, $sec, $month, $day) ); var_dump( mktime($hour, $minute, $sec, $month, $day, $year) ); -var_dump( mktime($hour, $minute, $sec, $month, $day, $year, $is_dst) ); ?> ===DONE=== @@ -40,8 +38,5 @@ int(%i) int(%i) int(%i) int(%i) - -Deprecated: mktime(): The is_dst parameter is deprecated in %s on line %d -int(%i) ===DONE=== diff --git a/ext/date/tests/mktime_error.phpt b/ext/date/tests/mktime_error.phpt index f517dc8aa32..eb1cc6e19a1 100644 --- a/ext/date/tests/mktime_error.phpt +++ b/ext/date/tests/mktime_error.phpt @@ -24,9 +24,8 @@ $sec = 45; $month = 7; $day = 2; $year = 1963; -$is_dst = 0; $extra_arg = 10; -var_dump( mktime($hour, $minute, $sec, $month, $day, $year, $is_dst, $extra_arg) ); +var_dump( mktime($hour, $minute, $sec, $month, $day, $year, $extra_arg) ); ?> ===DONE=== @@ -40,6 +39,6 @@ int(%d) -- Testing mktime() function with more than expected no. of arguments -- -Warning: mktime() expects at most 7 parameters, 8 given in %s on line %d +Warning: mktime() expects at most 6 parameters, 7 given in %s on line %d bool(false) ===DONE=== diff --git a/ext/date/tests/mktime_variation7.phpt b/ext/date/tests/mktime_variation7.phpt deleted file mode 100644 index 7a861eba1f6..00000000000 --- a/ext/date/tests/mktime_variation7.phpt +++ /dev/null @@ -1,251 +0,0 @@ ---TEST-- -Test mktime() function : usage variation - Passing unexpected values to seventh argument $is_dst. ---FILE-- - 1, 'two' => 2); - -// resource -$file_handle = fopen(__FILE__, 'r'); - -//array of values to iterate over -$inputs = array( - - // int data - 'int 0' => 0, - 'int 0' => 1, - 'int 0' => -1, - 'int 12345' => 12345, - 'int -12345' => -12345, - - // float data - 'float 10.5' => 10.5, - 'float -10.5' => -10.5, - 'float .5' => .5, - - // array data - 'empty array' => array(), - 'int indexed array' => $index_array, - 'associative array' => $assoc_array, - 'nested arrays' => array('foo', $index_array, $assoc_array), - - // null data - 'uppercase NULL' => NULL, - 'lowercase null' => null, - - // boolean data - 'lowercase true' => true, - 'lowercase false' =>false, - 'uppercase TRUE' =>TRUE, - 'uppercase FALSE' =>FALSE, - - // empty data - 'empty string DQ' => "", - 'empty string SQ' => '', - - // string data - 'string DQ' => "string", - 'string SQ' => 'string', - 'mixed case string' => "sTrInG", - 'heredoc' => $heredoc, - - // object data - 'instance of classWithToString' => new classWithToString(), - 'instance of classWithoutToString' => new classWithoutToString(), - - // undefined data - 'undefined var' => @$undefined_var, - - // unset data - 'unset var' => @$unset_var, - - // resource - 'resource' => $file_handle -); - -$hour = 10; -$minute = 30; -$second = 45; -$month = 7; -$day = 2; -$year = 1963; - -foreach($inputs as $variation =>$is_dst) { - echo "\n-- $variation --\n"; - var_dump( mktime($hour, $minute, $second, $month, $day, $year, $is_dst) ); -}; - -// closing the resource -fclose( $file_handle ); - -?> -===DONE=== ---EXPECTF-- -*** Testing mktime() : usage variation - unexpected values to seventh argument $is_dst*** - --- int 0 -- -int(%i) - --- int 12345 -- - -Deprecated: mktime(): The is_dst parameter is deprecated in %s on line %d -int(%i) - --- int -12345 -- - -Deprecated: mktime(): The is_dst parameter is deprecated in %s on line %d -int(%i) - --- float 10.5 -- - -Deprecated: mktime(): The is_dst parameter is deprecated in %s on line %d -int(-205165755) - --- float -10.5 -- - -Deprecated: mktime(): The is_dst parameter is deprecated in %s on line %d -int(%i) - --- float .5 -- - -Deprecated: mktime(): The is_dst parameter is deprecated in %s on line %d -int(-205162155) - --- empty array -- - -Warning: mktime() expects parameter 7 to be integer, array given in %s on line %d -bool(false) - --- int indexed array -- - -Warning: mktime() expects parameter 7 to be integer, array given in %s on line %d -bool(false) - --- associative array -- - -Warning: mktime() expects parameter 7 to be integer, array given in %s on line %d -bool(false) - --- nested arrays -- - -Warning: mktime() expects parameter 7 to be integer, array given in %s on line %d -bool(false) - --- uppercase NULL -- - -Deprecated: mktime(): The is_dst parameter is deprecated in %s on line %d -int(%i) - --- lowercase null -- - -Deprecated: mktime(): The is_dst parameter is deprecated in %s on line %d -int(%i) - --- lowercase true -- - -Deprecated: mktime(): The is_dst parameter is deprecated in %s on line %d -int(%i) - --- lowercase false -- - -Deprecated: mktime(): The is_dst parameter is deprecated in %s on line %d -int(%i) - --- uppercase TRUE -- - -Deprecated: mktime(): The is_dst parameter is deprecated in %s on line %d -int(%i) - --- uppercase FALSE -- - -Deprecated: mktime(): The is_dst parameter is deprecated in %s on line %d -int(%i) - --- empty string DQ -- - -Warning: mktime() expects parameter 7 to be integer, string given in %s on line %d -bool(false) - --- empty string SQ -- - -Warning: mktime() expects parameter 7 to be integer, string given in %s on line %d -bool(false) - --- string DQ -- - -Warning: mktime() expects parameter 7 to be integer, string given in %s on line %d -bool(false) - --- string SQ -- - -Warning: mktime() expects parameter 7 to be integer, string given in %s on line %d -bool(false) - --- mixed case string -- - -Warning: mktime() expects parameter 7 to be integer, string given in %s on line %d -bool(false) - --- heredoc -- - -Warning: mktime() expects parameter 7 to be integer, string given in %s on line %d -bool(false) - --- instance of classWithToString -- - -Warning: mktime() expects parameter 7 to be integer, object given in %s on line %d -bool(false) - --- instance of classWithoutToString -- - -Warning: mktime() expects parameter 7 to be integer, object given in %s on line %d -bool(false) - --- undefined var -- - -Deprecated: mktime(): The is_dst parameter is deprecated in %s on line %d -int(%i) - --- unset var -- - -Deprecated: mktime(): The is_dst parameter is deprecated in %s on line %d -int(%i) - --- resource -- - -Warning: mktime() expects parameter 7 to be integer, resource given in %s on line %d -bool(false) -===DONE===