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
,day
및year
에 의해 결정되는 하루의 시작을 기준으로 한 시간의 수입니다. 음수 값은 해당 날짜의 자정 이전 시간을 참조합니다. 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 , day 및 year 는 이제 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 타임스탬프 반환