본문 바로가기

개발/PHP

[php] 날짜와 시간함수 사용하기

날짜와 시간함수

날짜와 시간함수를 사용해서 날짜를 여러가지 형태로 변형하여 사용할 수 있습니다.

많이 사용되는 함수를 예로 들어 알아보겠습니다.

 


checkdate() 함수

월, 일, 연도 정보를 받아서 해당하는 날짜가 존재하는지 확인해주는 함수

사용방법

checkdate(int $month, int $day, int $year): bool

사용예시

<?php
echo 'test1 : '. checkdate(10, 23, 2022);
echo 'test2 : '. checkdate(10, 35, 2022);
?>

// 결과
test1 : true
test2 : false

 


date() 함수

날짜와 시간정보를 요청하는 형태에 맞게 결과를 반환하는 함수

사용방법

date(string $format, ?int $timestamp = null): string

사용예시

<?php
echo 'current_date : '. date("Y-m-d H:i:s");
?>

// 결과
current_date : 2022-10-23 12:12:12

 


getdate() 함수

타임스탬프 값을 인자로 전달받아 이값이 가리키는 날짜 및 시간에 대한 정보를 연관 배열의 형태로 반환한다

사용방법

getdate(?int $timestamp = null): array

사용예시

<?php
$today = getdate();
print_r($today);
?>

// 결과
Array
(
    [seconds] => 14
    [minutes] => 15
    [hours] => 7
    [mday] => 23
    [wday] => 0
    [mon] => 10
    [year] => 2022
    [yday] => 295
    [weekday] => Sunday
    [month] => October
    [0] => 1666509314
)

microtime() 함수

현재 Unix 타임스탬프를 마이크로초로 반환합니다.

함수의 처음과 끝의 시간을 마이크로 초로 기록한 후 이 시간의 값을 빼주면 함수의 실행시간을 마이크로 단위로 알아 올 수 있습니다.

 

사용방법

microtime(bool $as_float = false): string|float

 

사용예시

<?php
$mtime = microtime(true);
echo 'microtime: ' . $mtime;
?>

// 결과
microtime: 1667104336.4455

mktime() 함수

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

주어진 인수에 해당하는 Unix 타임스탬프를 반환합니다. 

 

사용방법

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

 

사용예시

<?php
$datetime =  date("Y-m-d H:i:s", mktime(0, 0, 0, 10, 30, 2022));
echo 'datetime: '.$datetime;
?>

// 결과
datetime: 2022-10-30 00:00:00

time() 함수

현재 Unix 타임스탬프를 반환 합니다.

사용방법

time(): int

 

사용예시

<?php
echo 'current_time: '.time();
?>

// 결과
current_time: 1667104892

strtotime() 함수

모든 영어 텍스트 날짜/시간 설명에 대해 Unix 타임스탬프로 구문 분석

사용방법

strtotime(string $datetime, ?int $baseTimestamp = null): int|false

 

사용예시

<?php
echo strtotime("now") . ' -> ' . date('Y-m-d H:i:s', strtotime("now")), "\n";
echo strtotime("+1 day") . ' -> ' . date('Y-m-d H:i:s', strtotime("+1 day")), "\n";
echo strtotime("+1 week") . ' -> ' . date('Y-m-d H:i:s', strtotime("+1 week")), "\n";
echo strtotime("+1 week 2 days 4 hours 2 seconds") . ' -> ' . date('Y-m-d H:i:s', strtotime("+1 week 2 days 4 hours 2 seconds")), "\n";
echo strtotime("next Monday") . ' -> ' . date('Y-m-d H:i:s', strtotime("next Monday")), "\n";
echo strtotime("last Monday") . ' -> ' . date('Y-m-d H:i:s', strtotime("last Monday")), "\n";
?>

// 결과
1667105480 -> 2022-10-30 04:51:20
1667191880 -> 2022-10-31 04:51:20
1667710280 -> 2022-11-06 04:51:20
1667897482 -> 2022-11-08 08:51:22
1667174400 -> 2022-10-31 00:00:00
1666569600 -> 2022-10-24 00:00:00

 

날짜와 시간관련 함수는 실무에서 많이 쓰이기 때문에 알아두면 유용하게 사용할 수 있습니다.