Php 如何查找夏令时开始的日期和时间

Php 如何查找夏令时开始的日期和时间,php,datetime,Php,Datetime,如果我有用户的时区,例如:澳大利亚/悉尼,我如何使用PHP查找夏令时在当地时间开始的日期和时间?我最后根据t AFAIK PHP可以告诉您夏令时是否在某个日期适用,但如果您想知道夏令时何时开始,则需要使用一项服务。如果您的要求有限,您可以找出日期并硬编码。我想这已经得到了回答@phpPhil No,它没有完全回答我的问题。该函数只是告诉您夏令时何时更改。然而,它确实从中得到了一个想法,现在将把它作为一个答案。谢谢你的帮助! $tz = new DateTimeZone('Australia/Sy

如果我有用户的时区,例如:澳大利亚/悉尼,我如何使用PHP查找夏令时在当地时间开始的日期和时间?

我最后根据t


AFAIK PHP可以告诉您夏令时是否在某个日期适用,但如果您想知道夏令时何时开始,则需要使用一项服务。如果您的要求有限,您可以找出日期并硬编码。我想这已经得到了回答@phpPhil No,它没有完全回答我的问题。该函数只是告诉您夏令时何时更改。然而,它确实从中得到了一个想法,现在将把它作为一个答案。谢谢你的帮助!
$tz = new DateTimeZone('Australia/Sydney');
$transitions = $tz->getTransitions();
if (is_array($transitions)) {
    foreach ($transitions AS $k => $t){

        // Look for current year
        if (substr($t['time'],0,4) == date('Y')) {

            // If isdst is set to 1, that means daylight savings starts on this date
            if (!empty($t['isdst'])) {

                $trans = $t;

            // If isdst is empty, that means daylight savings has already started
            // so I'll go back to the previous transition
            } else {

                $prev_k = $k - 1;
                $trans = $transitions[$prev_k];

            }

            break;

        }
    }
}

echo '<pre>';
print_r($trans);
echo '</pre>';