time은 1970년 1월 1일 00:00:00 부터 경과한 시간을 수치로 변환해준다.
이를 Unix Timestamp라 부른다.
echo $time = time();
// result : 1643292886
localtime을 이용해 현재시간에 대한 값을 Array 형태로 받을 수 있다.
localtime 첫번째 인자는 timestamp를 의미하고 두번째 인자의 경우 생략하여도 되지만 true값을 넣어주면 key가 index Key에서 tm_xxx 형태로 변경된다. ex) tm_min => int(23)
echo $time = time();
var_dump( localtime($time, true));
/*
array(9) {
'tm_sec' =>
int(45)
'tm_min' =>
int(5)
'tm_hour' =>
int(1)
'tm_mday' =>
int(28)
'tm_mon' =>
int(0)
'tm_year' =>
int(122)
'tm_wday' =>
int(5)
'tm_yday' =>
int(27)
'tm_isdst' =>
int(0)
}
*/
모든 날짜/시간 함수가 사용하는 기본 시간대를 설정한다.
타임존에 대한 목록은 이곳에서 볼 수 있다. => List of Supported Timezones
date_default_timezone_set('Asia/Seoul');
Date_default_timezone_get();
우선 순위에 따라 이 함수는 다음과 같은 방법으로 기본 시간대를 반환합니다.
입력받은 timestamp의 정보를 연관 배열로 반환합니다.
today);
/* output to:
Array
(
[seconds] => 40
[minutes] => 58
[hours] => 21
[mday] => 17
[wday] => 2
[mon] => 6
[year] => 2003
[yday] => 167
[weekday] => Tuesday
[month] => June
[0] => 1055901520
)
*/
지정한 날짜에 대한 Unix 타임스탬프를 만드는 방법은 아래와 같습니다.
mktime(
int $hour,
?int $minute = null,
?int $second = null,
?int $month = null,
?int $day = null,
?int $year = null
): int|false
인수는 오른쪽에서 왼쪽으로 순서대로 생략할 수 있습니다. 따라서 생략된 모든 인수는 현지 날짜 및 시간에 따라 현재 값으로 설정됩니다.
인수 없이 mktime() 을 호출 하는 것은 더 이상 사용되지 않습니다. time() 을 사용하여 현재 타임스탬프를 얻을 수 있습니다.
날짜 검증 함수가 빠질 수 없겠죠? 인수로 구성되 날짜의 유효성을 확인합니다. 각 매개변수가 올바르게 정의되면 날짜가 유효한 것으로 간주됩니다.
month : 월은 1에서 12 사이입니다.
day : 날짜가 지정된 month에 대해 허용된 일 수 내에 있습니다. year이 고려됩니다.
year : 연도는 1에서 32767 사이입니다.
var_dump(checkdate(12, 31, 2000)); // bool(true)
var_dump(checkdate(2, 29, 2001)); // bool(false)
매개변수를 통해 다양한 형식으로 시간 또는 날짜를 지정할 수 있습니다.
하지만, PHP 8.1.0 부터 더이상 사용되지 않으므로 사용을 권장하지 않습니다.
PHP 8.1.0 부터 더이상 사용되지 않으므로 사용을 권장하지 않습니다.
해당 파싱 함수는 더이상 사용되지 않기 때문에 아래 함수 사용을 권장 드립니다.
microtime() 은 현재 Unix 타임스탬프를 마이크로초 단위로 반환합니다.
이를 활용해 스크립트 실행 시간 측정해 성능을 측정하곤 합니다.
하지만, 성능 측정의 경우 hrtime()의 사용을 권장합니다.
임의의 시점에서 계산된 시스템의 고해상도 시간을 반환합니다. 전달된 타임스탬프는 심플하고 조정할 수 없습니다.
echo hrtime(true), PHP_EOL;
print_r(hrtime());
/* 결과
10444739687370679
Array
(
[0] => 10444739
[1] => 687464812
)
*/