HOWTO · PHP

PHP의 뉴욕 시간대

PHP에서 America/New_York 시간대를 설정하고 date()로 뉴욕 날짜 또는 시간을 포맷합니다.

이 페이지의 내용

뉴욕의 날짜 또는 시간을 표시하려면 date()를 호출하기 전에 PHP의 시간대를 America/New_York로 설정합니다. 식별자는 America/New_York입니다. New_York만으로는 완전한 PHP 시간대 식별자가 아닙니다.

PHP의 뉴욕 시간대

PHP의 지원되는 시간대 식별자는 매뉴얼에 나열되어 있습니다. date_default_timezone_set()로 기본 시간대를 설정한 다음 date_default_timezone_get()를 사용해 구성된 식별자를 검사합니다. 세터는 시간대를 수락하면 true를 반환하고 수락하지 않으면 false를 반환합니다. 식별자가 구성이나 사용자 입력에서 온 경우 그 결과를 확인하고, 날짜를 포맷하기 전에 false 결과를 처리하십시오.

이 완전한 예제는 뉴욕 시간을 설정하고, 구성된 시간대를 확인하며, 로컬 날짜와 시간을 포맷합니다.

<?php
$configured = date_default_timezone_set('America/New_York');

if ($configured) {
    echo 'Timezone: ' . date_default_timezone_get() . PHP_EOL;
    echo 'Date: ' . date('Y-m-d') . PHP_EOL;
    echo 'Time: ' . date('H:i:s') . PHP_EOL;
}

이 예제는 구성된 식별자를 출력한 뒤, 실행할 때의 날짜와 시간을 출력합니다. 마지막 두 값은 실행 시간에 따라 달라집니다. 포맷 문자열은 로컬 날짜와 시간의 어떤 부분이 표시될지를 제어합니다. Y-m-d에서 Y는 네 자리 연도, m은 두 자리 월, d는 두 자리 일입니다. H:i:s는 24시간제 시, 분, 초를 사용합니다. am 또는 pm 접미사가 있는 12시간제 시에는 h:i:sa를 사용합니다. date()의 각 호출은 앞서 설정한 기본 시간대를 사용하므로, 자정 무렵에는 날짜가 서버의 로컬 날짜와 다를 수 있습니다.

예를 들어, 이러한 포맷 문자열은 일반적인 날짜 레이아웃을 만듭니다: Y/m/d, d/m/Y, Y.m.d, d-m-Y. 포맷 문자 l은 요일을 완전히 적고, 소문자 h와 대문자 H는 각각 12시간제와 24시간제 시간을 선택합니다. 표시 컨텍스트에 맞는 포맷을 선택하고, date()는 두 번째 인수로 타임스탬프를 전달하지 않는 한 현재 시간을 포맷한다는 점에 유의하십시오.

시간대 설정은 현재 PHP 실행 컨텍스트에 적용되며, 이에 의존하는 날짜 및 시간 함수가 사용하는 기본값을 변경합니다. 애플리케이션이 이미 시간대 설정을 관리하고 있다면, 관련 없는 코드가 예상치 못한 기본값에 의존하지 않도록 적절한 요청 또는 애플리케이션 경계에서 시간대를 설정하십시오. 시간대를 설정하고 확인할 때는 동일한 식별자 철자 America/New_York를 사용하십시오.

현재 시간이 아닌 특정 순간에 대해서는 Unix 타임스탬프를 date()의 두 번째 인수로 전달합니다. 예를 들어, date('Y-m-d H:i:s', $timestamp)는 구성된 시간대를 사용해 그 순간을 포맷합니다. 타임스탬프는 한 순간을 나타냅니다. 시간대는 그 순간의 로컬 시계 및 달력 표시를 결정합니다. 이 구분은 이벤트 시간을 데이터베이스에 저장하고 뉴욕의 독자에게 표시할 때 유용합니다.

뉴욕은 계절에 따른 시계 변경을 적용하므로, UTC 오프셋이 연중 일정하지 않습니다. IANA 식별자 America/New_York를 사용하면 PHP가 포맷 중인 날짜에 관련된 시간대 규칙을 적용할 수 있습니다. 애플리케이션이 연중 뉴욕 로컬 시간을 필요로 하는 경우 -05:00와 같은 고정 오프셋으로 대체하지 마십시오.

프로젝트가 시간대를 중앙에서 구성하는 경우, 그 정책을 하나의 적절한 위치에 유지하고 날짜 포맷이 일관되게 이를 따르도록 하십시오.