Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP gmdate() 함수 완벽 정리 – GMT/UTC 기준 날짜·시간 포맷팅


gmdate() 함수는 GMT/UTC 기준의 날짜와 시간을 지정한 형식에 맞게 포맷팅하여 반환하는 PHP 내장 함수입니다.

일반적인 date() 함수가 서버에 설정된 현지 시간대를 기준으로 동작하는 것과 달리, gmdate()는 항상 그리니치 표준시(GMT/UTC)를 기준으로 결과를 계산한다는 점이 핵심 차이입니다. 따라서 국제화 서비스나 UTC 기반 데이터 저장 처리에 유용하게 활용할 수 있습니다.

문법(Syntax)

gmdate(format, timestamp)

매개변수(Parameters)

  • format − 출력될 날짜 문자열의 형식을 지정합니다. 사용 가능한 형식 문자는 아래와 같습니다.

    • d − 월의 일자, 두 자리 숫자(01~31)

    • D − 요일의 영문 축약 표기, 세 글자(예: Mon, Tue)

    • j − 선행 0이 없는 월의 일자(1~31)

    • l(소문자 'L') − 요일의 영문 전체 표기(예: Monday)

    • N − ISO-8601 방식의 요일 숫자 표현(월요일 = 1 ~ 일요일 = 7)

    • S − 월의 일자에 대한 영어 서수 접미사(st, nd, rd 또는 th, 2글자). j와 함께 사용하기 좋습니다

    • w − 요일의 숫자 표현(일요일 = 0 ~ 토요일 = 6)

    • z − 해당 연도에서 몇 번째 날인지(0~365)

    • W − ISO-8601 방식의 연도 주차 번호(주는 월요일부터 시작)

    • F − 월의 영문 전체 표기(January~December)

    • m − 월의 두 자리 숫자 표현(01~12)

    • M − 월의 영문 축약 표기, 세 글자(예: Jan, Feb)

    • n − 선행 0이 없는 월의 숫자 표현(1~12)

    • t − 해당 월의 총 일수

    • L − 윤년 여부(윤년이면 1, 아니면 0)

    • o − ISO-8601 방식의 연도 번호

    • Y − 네 자리 숫자로 표현한 연도

    • y − 두 자리 숫자로 표현한 연도

    • a − 소문자 am 또는 pm

    • A − 대문자 AM 또는 PM

    • B − Swatch 인터넷 시간(000~999)

    • g − 선행 0이 없는 12시간 형식의 시(1~12)

    • G − 선행 0이 없는 24시간 형식의 시(0~23)

    • h − 두 자리 숫자로 표현한 12시간 형식의 시(01~12)

    • H − 두 자리 숫자로 표현한 24시간 형식의 시(00~23)

    • i − 선행 0이 있는 분(00~59)

    • s − 선행 0이 있는 초(00~59)

    • e − 시간대 식별자(예: UTC, Atlantic/Azores)

    • I(대문자 i) − 서머타임 적용 여부(적용 중이면 1, 아니면 0)

    • O − 그리니치 평균시(GMT)와의 시차를 시간 단위로 표현(예: +0100)

    • T − PHP 실행 환경의 시간대 설정(예: EST, MDT)

    • Z − 초 단위의 시간대 오프셋. UTC보다 서쪽은 음수, 동쪽은 양수(-43200~43200)

    • c − ISO-8601 형식의 날짜(예: 2004-02-12T15:19:21+00:00)

    • r − RFC 2822 형식의 날짜(예: Thu, 21 Dec 2000 16:01:07 +0200)

    • U − Unix Epoch(1970년 1월 1일 00:00:00 GMT) 이후 경과한 초

  • timestamp − 정수형 Unix 타임스탬프입니다. 이 값을 생략하면 현재 로컬 시간이 기본값으로 사용되며, 즉 time() 함수의 반환값이 적용됩니다.

반환값(Return)

gmdate() 함수는 포맷팅된 날짜 문자열을 반환합니다. 만약 timestamp 매개변수에 숫자가 아닌 값이 전달되면 FALSE를 반환하고 E_WARNING 수준의 오류를 발생시킵니다.

예제 1

아래는 mktime()과 함께 사용하는 예제입니다 −

<?php
    echo gmdate("M d Y H:i:s", mktime(0, 0, 0, 8, 8, 2018));
?>

출력

Aug 08 2018 00:00:00

예제 2

이번에는 사전 정의 상수인 DATE_RFC822를 활용한 예제를 살펴보겠습니다 −

<?php
    echo gmdate(DATE_RFC822);
?>

출력

Thu, 11 Oct 18 05:10:32 +0000