Backend/php

[PHP] 시간 함수 (1) - time(), date(), mktime()

민57 2020. 3. 7. 15:49
time() : 타임스탬프 시간. 1970년 1월 1일 0시 0분 0초부터 세기 시작한 시간을 의미

코드를 실행한 시간을 기준으로 출력된다.

<?php
    echo time();
?>

 

Result

1583561822

위의 시간대로부터 1583561822초가 지났음을 알 수 있다.

 

 

 

 


 

 

 

date() : 타임스탬프의 값을 몇년 몇월 며칠 형태로 바꾸어주는 함수
구성
date(시간포맷, 타임스탬프값)

시간 포맷에는 알고 싶은 시간의 단위값(연도 또는 월일 등)을 입력하고,

타임스탬프 값에는 알고 싶은 타임스탬프 시간 값을 입력한다.

 

시간 포맷에는 다양한 종류가 있다.

문자 의미 예시 문자 의미 예시
Y 4자리 연도 2020 (년) 일(0)~토(6) 1 - 월요일
m 0 + n월 04 (월) M 3자리 월 Jan
d 0 + n일 07 (일) z 올 해의 며칠 째 245 (일 째)
H 0 + n시 08 (시) y 2자리 연도 20 (20년)
i 0 + n분 05 (분) F 전체 글자 월 January
s 0 + n초 01 (초) n 0 없이 월 4 (월)
A 오전, 오후 대문자 AM, PM j 0 없이 일 7 (일)

 

위의 표 내용을 참고하여 현재의 시간을 표시해보자.

<?php
    echo "현재 시간은 ".date("Y년 m월 d일 H시 i분 s초",time())."이다.";
?>

 

Result

현재 시간은 2020년 03월 07일 15시 32분 50초이다.

 

 

 


 

 

 

mktime() : 특정 시간을 타임스탬프 시간으로 표시해주는 함수

위의 date() 함수와 다르게 mktime() 함수는 특정 시간을 타임스탬프로 만들어준다.

구성
mktime(시, 분, 초, 월, 일, 년)


이 함수를 가지고 특정 시간에만 특정 명령어가 작동하도록 해보자. 

 

<?php
    //시작 시간 설정 2020년 3월 7일 15시 45분 0초
    $startTime = mktime(15, 45, 0, 3, 7, 2020); 

    //종료 시간 설정 - 2020년 3월 7일 15시 46분 0초
    $endTime = mktime(15, 46, 0, 3, 7, 2020);

    $nowTime = time();

    if($nowTime >= $startTime && $nowTime <= $endTime) {
        echo "이벤트 참여 가능 시간입니다.";
    } else {
        echo "이벤트 시작 전이거나 종료되었습니다.";
    }
?>

 

Result 3시 45분에 실행 시

이벤트 참여 가능 시간입니다.

 

Result 3시 46분 1초가 지난 시점에 실행 시

이벤트 시작 전이거나 종료되었습니다.
728x90