10 changed files with 24 additions and 439 deletions
-
1NEWS
-
3UPGRADING
-
26ext/date/php_date.c
-
67ext/date/tests/bug27719.phpt
-
12ext/date/tests/gmmktime_error.phpt
-
42ext/date/tests/mktime-1.phpt
-
51ext/date/tests/mktime-2.phpt
-
5ext/date/tests/mktime_basic1.phpt
-
5ext/date/tests/mktime_error.phpt
-
251ext/date/tests/mktime_variation7.phpt
@ -1,67 +0,0 @@ |
|||
--TEST-- |
|||
Bug #27719 (mktime returns incorrect timestamp for dst days) |
|||
--INI-- |
|||
date.timezone=EST |
|||
error_reporting=2047 |
|||
--FILE-- |
|||
<?php /* $Id$ */ |
|||
$a = mktime(0, 0, 0, 4, 4, 2004, 0); |
|||
$b = mktime(0, 0, 0, 4, 4, 2004, 1); |
|||
$c = mktime(0, 0, 0, 4, 4, 2004, -1); |
|||
echo "$a ".date("m/d/y h:i:s\n",$a); |
|||
echo "$b ".date("m/d/y h:i:s\n",$b); |
|||
echo "$c ".date("m/d/y h:i:s\n",$c); |
|||
echo "\n"; |
|||
date_default_timezone_set('EST5EDT'); // DST not in effect |
|||
$a = mktime(0, 0, 0, 2, 4, 2004, 0); |
|||
$b = mktime(0, 0, 0, 2, 4, 2004, 1); |
|||
$c = mktime(0, 0, 0, 2, 4, 2004, -1); |
|||
echo "$a ".date("m/d/y h:i:s\n",$a); |
|||
echo "$b ".date("m/d/y h:i:s\n",$b); |
|||
echo "$c ".date("m/d/y h:i:s\n",$c); |
|||
echo "\n"; |
|||
date_default_timezone_set('EST5EDT'); |
|||
$a = mktime(0, 0, 0, 4, 4, 2004, 0); |
|||
$b = mktime(0, 0, 0, 4, 4, 2004, 1); |
|||
$c = mktime(0, 0, 0, 4, 4, 2004, -1); |
|||
echo "$a ".date("m/d/y h:i:s\n",$a); |
|||
echo "$b ".date("m/d/y h:i:s\n",$b); |
|||
echo "$c ".date("m/d/y h:i:s\n",$c); |
|||
echo "\n"; |
|||
date_default_timezone_set('EST5EDT'); |
|||
$a = mktime(3, 0, 0, 4, 4, 2004, 0); |
|||
$b = mktime(3, 0, 0, 4, 4, 2004, 1); |
|||
$c = mktime(3, 0, 0, 4, 4, 2004, -1); |
|||
echo "$a ".date("m/d/y h:i:s\n",$a); |
|||
echo "$b ".date("m/d/y h:i:s\n",$b); |
|||
echo "$c ".date("m/d/y h:i:s\n",$c); |
|||
echo "\n"; |
|||
date_default_timezone_set('EST5EDT'); |
|||
$a = mktime(0, 0, 0, 6, 4, 2004, 0); |
|||
$b = mktime(0, 0, 0, 6, 4, 2004, 1); |
|||
$c = mktime(0, 0, 0, 6, 4, 2004, -1); |
|||
echo "$a ".date("m/d/y h:i:s\n",$a); |
|||
echo "$b ".date("m/d/y h:i:s\n",$b); |
|||
echo "$c ".date("m/d/y h:i:s\n",$c); |
|||
echo "\n"; |
|||
?> |
|||
--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 |
|||
@ -1,51 +0,0 @@ |
|||
--TEST-- |
|||
mktime() [2] |
|||
--INI-- |
|||
error_reporting=2047 |
|||
--FILE-- |
|||
<?php |
|||
$timezones = array( |
|||
'UTC', |
|||
'Europe/London' |
|||
); |
|||
|
|||
foreach($timezones as $timezone) |
|||
{ |
|||
date_default_timezone_set($timezone); |
|||
|
|||
/* status of daylight saving time unknown */ |
|||
var_dump(mktime(0, 0, 0, 1, 1, 2002)); |
|||
/* status of daylight saving time unknown */ |
|||
var_dump(mktime(0, 0, 0, 1, 1, 2002, -1)); |
|||
/* daylight saving time is not in effect */ |
|||
var_dump(mktime(0, 0, 0, 1, 1, 2002, 0)); |
|||
/* daylight saving time is in effect */ |
|||
var_dump(mktime(0, 0, 0, 1, 1, 2002, 1)); |
|||
|
|||
/* status of daylight saving time unknown */ |
|||
var_dump(mktime(0, 0, 0, 7, 1, 2002)); |
|||
/* status of daylight saving time unknown */ |
|||
var_dump(mktime(0, 0, 0, 7, 1, 2002, -1)); |
|||
/* daylight saving time is not in effect */ |
|||
var_dump(mktime(0, 0, 0, 7, 1, 2002, 0)); |
|||
/* daylight saving time is in effect */ |
|||
var_dump(mktime(0, 0, 0, 7, 1, 2002, 1)); |
|||
} |
|||
?> |
|||
--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) |
|||
@ -1,251 +0,0 @@ |
|||
--TEST-- |
|||
Test mktime() function : usage variation - Passing unexpected values to seventh argument $is_dst. |
|||
--FILE-- |
|||
<?php |
|||
/* Prototype : int mktime ([ int $hour= date("H") [, int $minute= date("i") [, int $second= date("s") [, int $month= date("n") [, int $day= date("j") [, int $year= date("Y") [, int $is_dst= -1 ]]]]]]] ) |
|||
* Description: Get Unix timestamp for a date |
|||
* Source code: ext/date/php_date.c |
|||
* Alias to functions: |
|||
*/ |
|||
|
|||
echo "*** Testing mktime() : usage variation - unexpected values to seventh argument \$is_dst***\n"; |
|||
|
|||
//Set the default time zone |
|||
date_default_timezone_set("Europe/London"); |
|||
|
|||
//get an unset variable |
|||
$unset_var = 10; |
|||
unset ($unset_var); |
|||
|
|||
// define some classes |
|||
class classWithToString |
|||
{ |
|||
public function __toString() { |
|||
return "Class A object"; |
|||
} |
|||
} |
|||
|
|||
class classWithoutToString |
|||
{ |
|||
} |
|||
|
|||
// heredoc string |
|||
$heredoc = <<<EOT |
|||
hello world |
|||
EOT; |
|||
|
|||
// add arrays |
|||
$index_array = array (1, 2, 3); |
|||
$assoc_array = array ('one' => 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=== |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue