3v4l.org

run code in 300+ PHP versions simultaneously
<?php $timezoneAbbr = DateTimeZone::listAbbreviations(); $results = []; foreach ($timezoneAbbr as $group => $timezones) { foreach ($timezones as $timezoneData) { if ($timezoneData['dst'] === false) { continue; } $timezone = new DateTimeZone($timezoneData['timezone_id']); $transitions = $timezone->getTransitions(1546322400, 1577858400); if (!is_array($transitions)) { continue; } foreach ($transitions as $transition) { if (strpos($transition['time'], '2019-01-01') !== false) { continue; } if ($transition['isdst'] === true) { continue; } $date = new DateTime($transition['time']); $date->modify('+1 hour')->modify('-1 second'); $date->setTimezone($timezone); $date = DateTime::createFromFormat('Y-m-d H:i:s', $date->format('Y-m-d H:i:s'), $timezone); if ($date->format('I') === '0') { $results[$date->format(DateTime::ATOM).' '.$timezone->getName()] = 1; } } } } array_map(function ($x) { echo $x, PHP_EOL; }, array_keys($results));

preferences:
73.89 ms | 402 KiB | 5 Q