3v4l.org

run code in 500+ PHP versions simultaneously
<?php //2011-03-13T08:00:00+0000 1300003200 America/Chicago CDT $date = new \DateTime('2010-11-07 02:00:00 America/Chicago'); $timestamp = (int) $date->format('U'); //CST 0 OR $timestamp + (3600 * 24 * 126); for($i = 0; ; $i++) { $date = new \DateTime('@' . ($timestamp + (3600 * $i * 24))); $tz = new \DateTimeZone('America/Chicago'); $date->SetTimezone($tz); $is_dst = $date->format('I'); $arr = $tz->getTransitions($timestamp, $timestamp); if('CST' === $arr[0]['abbr'] || -21600 === $arr[0]['offset'] || !isset($is_dst) || !$is_dst) { //$is_dst work with default object. var_dump($arr, $is_dst); break; } }
Output for 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.6 - 8.1.34
array(1) { [0]=> array(5) { ["ts"]=> int(1289116800) ["time"]=> string(24) "2010-11-07T08:00:00+0000" ["offset"]=> int(-21600) ["isdst"]=> bool(false) ["abbr"]=> string(3) "CST" } } string(1) "0"
Output for 8.1.0 - 8.1.5
array(1) { [0]=> array(5) { ["ts"]=> int(1289116800) ["time"]=> string(24) "2010-11-07T08:00:00+0000" ["offset"]=> int(-18000) ["isdst"]=> bool(true) ["abbr"]=> string(3) "CDT" } } string(1) "0"
Output for 8.2.0 - 8.2.34, 8.3.0 - 8.3.35, 8.4.1 - 8.4.26, 8.5.0 - 8.5.11
array(1) { [0]=> array(5) { ["ts"]=> int(1289116800) ["time"]=> string(25) "2010-11-07T08:00:00+00:00" ["offset"]=> int(-21600) ["isdst"]=> bool(false) ["abbr"]=> string(3) "CST" } } string(1) "0"

preferences:
35.78 ms | 1148 KiB | 13 Q