mktime

(PHP 4, PHP 5, PHP 7, PHP 8)

mktime — 날짜에 대한 Unix 타임스탬프 가져오기


설명

mktime(
    int $hour,
    ?int $minute = null,
    ?int $second = null,
    ?int $month = null,
    ?int $day = null,
    ?int $year = null
): int|false
                

주어진 인수에 해당하는 Unix 타임스탬프를 반환합니다. 이 타임스탬프는 Unix Epoch(1970년 1월 1일 00:00:00 GMT)와 지정된 시간 사이의 초 수를 포함하는 긴 정수입니다.

인수는 오른쪽에서 왼쪽으로 순서대로 생략할 수 있습니다. 따라서 생략된 모든 인수는 현지 날짜 및 시간에 따라 현재 값으로 설정됩니다.

인수 없이 mktime()을 호출하는 것은 더 이상 사용되지 않습니다. time()을 사용하여 현재 타임스탬프를 얻을 수 있습니다.


매개변수

hour
month, dayyear에 의해 결정되는 하루의 시작을 기준으로 한 시간의 수입니다. 음수 값은 해당 날짜의 자정 이전 시간을 참조합니다. 23보다 큰 값은 다음 날의 적절한 시간을 참조합니다.
minute
hour의 시작을 기준으로 한 분의 숫자입니다. 음수 값은 이전 시간의 분을 참조합니다. 59보다 큰 값은 다음 시간의 적절한 분을 참조합니다.
second
minute 시작을 기준으로 한 시간(초)입니다. 음수 값은 이전 분의 초를 참조합니다. 59보다 큰 값은 다음 분의 해당 초를 참조합니다.
month
전년도 말을 기준으로 한 월 수입니다. 값 1에서 12는 해당 연도의 일반 달력 월을 참조합니다. 1보다 작은 값(음수 값 포함)은 이전 연도의 월을 역순으로 참조하므로 0은 12월, -1은 11월 등입니다. 12보다 큰 값은 다음 연도의 해당 월을 참조합니다.
day
전월 말을 기준으로 한 날짜의 숫자입니다. 값 1 ~ 28, 29, 30 또는 31(월에 따라 다름)은 해당 월의 정상 날짜를 참조합니다. 1보다 작은 값(음수 값 포함)은 전월의 일을 참조하므로 0은 전월의 마지막 날, -1은 그 전날 등입니다. 해당 월의 일 수보다 큰 값은 참조 다음 달의 적절한 날.
year
연도 숫자는 2자리 또는 4자리 값일 수 있으며 0-69 사이의 값은 2000-2069에 매핑되고 70-100은 1970-2000에 매핑됩니다. time_t가 32비트 부호 있는 정수인 시스템에서 오늘날 가장 일반적으로 사용되는 year의 유효한 범위는 1901년에서 2038년 사이입니다.

반환 값

mktime()은 주어진 인수의 Unix 타임스탬프를 반환합니다. 인수가 유효하지 않으면 함수는 false를 반환합니다.


오류/예외

날짜/시간 함수에 대한 모든 호출은 시간대가 유효하지 않은 경우 E_WARNING을 생성합니다. date_default_timezone_set()도 참조하십시오.


변경 로그

버전 설명
8.0.0 hour은 더 이상 선택 사항이 아닙니다.
8.0.0 minute, second, month, dayyear는 이제 nullable입니다.

Examples

예제 #1 mktime() 기본 예제

                  
<?php
// Set the default timezone to use.
date_default_timezone_set('UTC');

// Prints: July 1, 2000 is on a Saturday
echo "July 1, 2000 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2000));

// Prints something like: 2006-04-05T01:02:03+00:00
echo date('c', mktime(1, 2, 3, 4, 5, 2006));
?>
                  
                

예제 #2 mktime() 예제

mktime()은 범위를 벗어난 입력에 대한 올바른 값을 자동으로 계산하므로 날짜 산술 및 유효성 검사를 수행하는 데 유용합니다. 예를 들어, 다음 줄 각각은 "Jan-01-1998" 문자열을 생성합니다.

                  
<?php
echo date("M-d-Y", mktime(0, 0, 0, 12, 32, 1997));
echo date("M-d-Y", mktime(0, 0, 0, 13, 1, 1997));
echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 1998));
echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 98));
?>
                  
                

예제 #3 달의 마지막 날

특정 월의 마지막 날은 -1일이 아닌 다음 달의 "0"일로 표현할 수 있습니다. 다음 예제 모두 "The last day in Feb 2000 is: 29" 문자열을 생성합니다.

                  
<?php
$lastday = mktime(0, 0, 0, 3, 0, 2000);
echo strftime("Last day in Feb 2000 is: %d", $lastday);
$lastday = mktime(0, 0, 0, 4, -31, 2000);
echo strftime("Last day in Feb 2000 is: %d", $lastday);
?>
                  
                

기타

  • checkdate() - 그레고리력 날짜 확인
  • gmmktime() - GMT 날짜에 대한 Unix 타임스탬프 가져오기
  • date() - 현지 시간/날짜 형식 지정
  • time() - 현재 Unix 타임스탬프 반환