Как найти дату и время перехода на летнее время

0

Если у меня есть часовой пояс пользователя (например, Австралия/Сидней), как мне использовать PHP, чтобы найти дату и время, когда дневное сбережение начинается в свое местное время?

  • 0
    AFAIK PHP может сказать вам, применяется ли переход на летнее время в определенную дату, но если вы хотите знать, когда начинается переход на летнее время, вам нужно будет использовать службу. Если ваши требования ограничены, вы можете узнать и жестко закодировать даты.
  • 2
    Я думаю, что здесь уже был дан ответ
Показать ещё 1 комментарий
Теги:
datetime

1 ответ

0
Лучший ответ

Я закончил тем, что работал над ним, основываясь на каком-то кодексе из его билета.

$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>';

Ещё вопросы

Сообщество Overcoder
Наверх
Меню