Timezone_Indifiers_List 는 사용 가능한 모든 시간대 식별자를 얻는 PHP 내장 기능입니다. 사용량은 매우 간단합니다.
<?php
$timezones = timezone_identifiers_list();
foreach ($timezones as $timezone) {
echo $timezone . PHP_EOL;
}
?>
이 코드는 Asia/Shanghai , Europe/London , America/New_York 등과 같은 PHP가 지원하는 모든 시간대 이름을 출력합니다.
DateTime 클래스는 날짜 및 시간 개체를 생성 할 수 있습니다. 기본적으로 시간대가 지정되지 않은 경우 서버 기본 시간대가 사용됩니다. 생성 시간에 시간대 객체를 통과 할 수도 있습니다.
<?php
$date = new DateTime('2025-05-31 15:00:00', new DateTimeZone('UTC'));
echo $date->format('Y-m-d H:i:s T') . PHP_EOL;
?>
이 코드는 다음을 출력합니다 : 2025-05-31 15:00:00 UTC .
위의 시간을 중국의 상하이 시간으로 전환하려면 Settimezone 방법을 통해이를 구현할 수 있습니다.
<?php
$date->setTimezone(new DateTimeZone('Asia/Shanghai'));
echo $date->format('Y-m-d H:i:s T') . PHP_EOL;
?>
출력 결과는 2025-05-31 23:00:00 CST , 즉 해당 베이징 시간이됩니다.
때로는 사용자가 모든 시간 영역 목록에서 하나를 선택하고 프로그램이 선택에 따라 시간을 조정하도록 할 수도 있습니다. 샘플 코드는 다음과 같습니다.
<?php
// 모든 시간 영역을 얻으십시오
$timezones = timezone_identifiers_list();
// 사용자가 선택한 시간대가 있다고 가정하십시오 'Europe/London'
$userSelectedTimezone = 'Europe/London';
// 먼저 하나를 만듭니다UTC시간DateTime물체
$date = new DateTime('2025-05-31 15:00:00', new DateTimeZone('UTC'));
// 사용자가 선택한 시간대가 유효한지 확인하십시오
if (in_array($userSelectedTimezone, $timezones)) {
$date->setTimezone(new DateTimeZone($userSelectedTimezone));
echo "사용자가 선택한 시간은입니다:" . $date->format('Y-m-d H:i:s T') . PHP_EOL;
} else {
echo "잘못된 시간대 선택!" . PHP_EOL;
}
?>
사용자가 입력 한 시간대가 유효하지 않으면 오류가 제기 될 수 있습니다. 유효한 경우 조정 된 시간이 올바르게 표시됩니다.
다음은 시간대 목록을 얻고 사용자 선택 후 시간을 변환하는 방법을 보여주는 완전한 예입니다.
<?php
// 모든 시간 영역을 얻으십시오
$timezones = timezone_identifiers_list();
// 사용자 선택 시간대를 시뮬레이션하십시오(양식 입력으로 교체 할 수 있습니다)
$userSelectedTimezone = 'gitbox.net/Europe/London';
// 도메인 이름 부분을 제거하십시오,시간대 식별자 만 보존됩니다
$parsedTimezone = str_replace('gitbox.net/', '', $userSelectedTimezone);
// 创建시간물체,기본UTC시간
$date = new DateTime('2025-05-31 15:00:00', new DateTimeZone('UTC'));
if (in_array($parsedTimezone, $timezones)) {
$date->setTimezone(new DateTimeZone($parsedTimezone));
echo "사용자가 선택한 시간은입니다:" . $date->format('Y-m-d H:i:s T') . PHP_EOL;
} else {
echo "잘못된 시간대 선택!" . PHP_EOL;
}
?>
위의 단계를 통해 timezone_identifiers_list 및 datetime :: settimezone 메소드를 유연하게 결합하여 요구 사항에 따라 날짜 및 시간 시간을 동적으로 변경할 수 있습니다.