1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170
|
--TEST--
Bug #20382 [2] (strtotime ("Monday", $date) produces wrong result on DST changeover)
--FILE--
<?php
$tests = array(
array("Europe/Andorra", 17, 17, 17, 1, 24764, 1970),
array("Asia/Dubai", 17, 17, 17, 1, 1, 1970),
array("Asia/Kabul", 17, 17, 17, 1, 1, 1970),
array("America/Antigua", 17, 17, 17, 1, 1, 1970),
array("America/Anguilla", 17, 17, 17, 1, 1, 1970),
array("Europe/Tirane", 17, 17, 17, 1, 4849, 1970),
array("Asia/Yerevan", 17, 17, 17, 1, 24764, 1970),
array("America/Curacao", 17, 17, 17, 1, 1, 1970),
array("Africa/Luanda", 17, 17, 17, 1, 1, 1970),
array("Antarctica/McMurdo", 17, 17, 17, 1, 24743, 1970),
array("Australia/Adelaide", 17, 17, 17, 1, 1, 1971),
array("Australia/Darwin", 17, 17, 17, 1, 88, 1971),
array("Australia/Perth", 17, 17, 17, 1, 1, 1971),
array("America/Aruba", 17, 17, 17, 1, 88, 1971),
array("Asia/Baku", 17, 17, 17, 1, 1, 1971),
array("Europe/Sarajevo", 17, 17, 17, 1, 1, 1971),
array("America/Barbados", 17, 17, 17, 1, 1, 1971),
array("Asia/Dacca", 17, 17, 17, 1, 1, 1971),
array("Europe/Brussels", 17, 17, 17, 1, 1, 1971),
array("Africa/Ouagadougou", 17, 17, 17, 1, 88, 1971),
array("Europe/Tirane", 17, 17, 17, 1, 4849, 1970),
array("America/Buenos_Aires", 17, 17, 17, 1, 1734, 1970),
array("America/Rosario", 17, 17, 17, 1, 1734, 1970),
array("Europe/Vienna", 17, 17, 17, 1, 3743, 1970),
array("Asia/Baku", 17, 17, 17, 1, 9490, 1970),
);
foreach ($tests as $test) {
date_default_timezone_set($test[0]);
print "{$test[0]}\n";
array_shift($test);
$timestamp = call_user_func_array('mktime', $test);
print "ts = ". date("l Y-m-d H:i:s T", $timestamp). "\n";
$strtotime_tstamp = strtotime("first monday", $timestamp);
print "result = ".date("l Y-m-d H:i:s T", $strtotime_tstamp)."\n";
print "wanted = Monday 00:00:00\n\n";
}
?>
--EXPECTF--
Europe/Andorra
ts = Monday 2037-10-19 17:17:17 CEST
result = Monday 2037-10-26 00:00:00 CET
wanted = Monday 00:00:00
Asia/Dubai
ts = Thursday 1970-01-01 17:17:17 %s
result = Monday 1970-01-05 00:00:00 %s
wanted = Monday 00:00:00
Asia/Kabul
ts = Thursday 1970-01-01 17:17:17 %s
result = Monday 1970-01-05 00:00:00 %s
wanted = Monday 00:00:00
America/Antigua
ts = Thursday 1970-01-01 17:17:17 AST
result = Monday 1970-01-05 00:00:00 AST
wanted = Monday 00:00:00
America/Anguilla
ts = Thursday 1970-01-01 17:17:17 AST
result = Monday 1970-01-05 00:00:00 AST
wanted = Monday 00:00:00
Europe/Tirane
ts = Monday 1983-04-11 17:17:17 CET
result = Monday 1983-04-18 01:00:00 CEST
wanted = Monday 00:00:00
Asia/Yerevan
ts = Monday 2037-10-19 17:17:17 +04
result = Monday 2037-10-26 00:00:00 +04
wanted = Monday 00:00:00
America/Curacao
ts = Thursday 1970-01-01 17:17:17 AST
result = Monday 1970-01-05 00:00:00 AST
wanted = Monday 00:00:00
Africa/Luanda
ts = Thursday 1970-01-01 17:17:17 WAT
result = Monday 1970-01-05 00:00:00 WAT
wanted = Monday 00:00:00
Antarctica/McMurdo
ts = Monday 2037-09-28 17:17:17 NZDT
result = Monday 2037-10-05 00:00:00 NZDT
wanted = Monday 00:00:00
Australia/Adelaide
ts = Friday 1971-01-01 17:17:17 ACST
result = Monday 1971-01-04 00:00:00 ACST
wanted = Monday 00:00:00
Australia/Darwin
ts = Monday 1971-03-29 17:17:17 ACST
result = Monday 1971-04-05 00:00:00 ACST
wanted = Monday 00:00:00
Australia/Perth
ts = Friday 1971-01-01 17:17:17 AWST
result = Monday 1971-01-04 00:00:00 AWST
wanted = Monday 00:00:00
America/Aruba
ts = Monday 1971-03-29 17:17:17 AST
result = Monday 1971-04-05 00:00:00 AST
wanted = Monday 00:00:00
Asia/Baku
ts = Friday 1971-01-01 17:17:17 +04
result = Monday 1971-01-04 00:00:00 +04
wanted = Monday 00:00:00
Europe/Sarajevo
ts = Friday 1971-01-01 17:17:17 CET
result = Monday 1971-01-04 00:00:00 CET
wanted = Monday 00:00:00
America/Barbados
ts = Friday 1971-01-01 17:17:17 AST
result = Monday 1971-01-04 00:00:00 AST
wanted = Monday 00:00:00
Asia/Dacca
ts = Friday 1971-01-01 17:17:17 %s
result = Monday 1971-01-04 00:00:00 %s
wanted = Monday 00:00:00
Europe/Brussels
ts = Friday 1971-01-01 17:17:17 CET
result = Monday 1971-01-04 00:00:00 CET
wanted = Monday 00:00:00
Africa/Ouagadougou
ts = Monday 1971-03-29 17:17:17 GMT
result = Monday 1971-04-05 00:00:00 GMT
wanted = Monday 00:00:00
Europe/Tirane
ts = Monday 1983-04-11 17:17:17 CET
result = Monday 1983-04-18 01:00:00 CEST
wanted = Monday 00:00:00
America/Buenos_Aires
ts = Monday 1974-09-30 17:17:17 %s
result = Monday 1974-10-07 00:00:00 %s
wanted = Monday 00:00:00
America/Rosario
ts = Monday 1974-09-30 17:17:17 %s
result = Monday 1974-10-07 00:00:00 %s
wanted = Monday 00:00:00
Europe/Vienna
ts = Monday 1980-03-31 17:17:17 CET
result = Monday 1980-04-07 00:00:00 CEST
wanted = Monday 00:00:00
Asia/Baku
ts = Monday 1995-12-25 17:17:17 +04
result = Monday 1996-01-01 00:00:00 +04
wanted = Monday 00:00:00
|