PHP 날짜시간 함수 사용하기(date/strtotime/mktime) Function

안녕하세요.

이번에 소개할 내용은 PHP 날짜시간 관련으로 사용하는 함수 입니다.

날짜시간 관련 함수는 주로 많이 사용되는 함수이므로 참고를 해두시면

앞으로 코딩을 하면서 날짜시간 관련 개발을 할때 유용한 정보가 될수가 있겠습니다.

대충 한번이라도 봐두시면 나중에 반듯이 생각이나는 경우가 있겠습니다.

time : int time(void)
현재 시간을 timestamp로 반환

strtotime : int strtotime ( string $time [, int $now = time() ] )
string을 timestamp로 반환

date : string date ( string $format [, int $timestamp ] )
정수형으로 주어지는 timestamp나, timestamp가 주어지지 않았을 경우에는
현재 로컬시간을 사용하여, 주어진 포맷 문자열에 따라 형식화한 문자열을 반환합니다.
즉 timestamp는 선택적이고 기본값은 time()의 값입니다.

아래는 date format 형식
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
d : 일, 앞에 0이 붙는 2 숫자(01에서 31)
D : 요일 글자 표현, 3문자(Mon에서 Sun)
j : 앞에 0이 붙지 않는 일(1에서 31)
l : 요일의 완전한 글자 표현(Sunday에서 Saturday)
N : 요일의 ISO-8601 숫자 표현(1(월요일)에서 7(일요일))
w : 요일 숫자 표현(0(일요일)에서 6(토요일))
W : ISO-8601 주차, 주는 월요이에 시작(42(그 해의 42번째 주))
F : January나 March 같은 월의 완전한 글자 표현(Januray에서 December)
m : 0이 붙는 월 숫자 표현(01에서 12)
M : 월의 축약 글자 표현, 3문자(Jan에서 Dec)
n : 0이 붙지 않는 월 숫자 표현(1에서 12)
t : 주어진 월의 일 수(28에서 31)
L : 윤년 여부(윤년엔 1, 그 외엔 0)
Y : 연도의 완전한 숫자 표현, 4 숫자(1999나 2012)
y : 연도의 두 숫자 표현(99나 12)
a : 오전과 오후의 소문자(am 또는 pm)
A : 오전과 오후의 대문자(AM 또는 PM)
g : 0이 붙지 않는 12시간 형식 시(1에서 12)
G : 0이 붙지 않는 24시간 형식 시(1에서 24)
h : 0이 붙는 12시간 형식 시(01에서 12)
H : 0이 붙는 24시간 형식 시(00에서 24)
i : 0이 붙는 분(00에서 59)
s : 초, 0이 붙음(00에서 59)

mktime : int mktime ([ int $hour = date(“H”) [, int $minute = date(“i”) [, int $second = date(“s”) [, int $month = date(“n”) [, int $day = date(“j”) [, int $year = date(“Y”) [, int $is_dst = -1 ]]]]]]] )

아래의 인자값을 대입하면 timestamp를 반환 합니다.
1
2
3
4
5
6
hour : 시간
minute : 분
second : 초
month : 월
day : 일
year : 년도
1
2
3
4
5
6
<?php
$nextWeek = time() + (7 * 24 * 60 * 60); // 현재시간에 7일에 해당하는 시간을 더한다
echo "현재 날짜 : " . date('Y-m-d') . "\n";
echo "다음주 날짜 : " . date('Y-m-d', $nextWeek) ."\n";
echo "다음주 날짜 : " . date('Y-m-d', strtotime('+1 week')) ."\n";
?>
1
2
3
4
결과값 :
현재 날짜 : 2020-05-28
다음주 날짜 : 2020-06-04
다음주 날짜 : 2020-06-04
1
2
3
4
5
6
7
<?php
$recentdate = mktime(0, 0, 0, 5, 28, 2020);
$year=date('Y', $recentdate);
$month=date('m', $recentdate);
$day=date('d', $recentdate);
echo "현재 : " . $year . "년 " . $month . "월 " . $day . "일";
?>
1
2
결과값 :
현재 : 2020년 05월 28일
1
2
3
4
5
6
7
8
9
<?php
echo "현재: " . date('Y-m-d', strtotime("now"))."\n";
echo "날짜: " . date('Y-m-d', strtotime("10 September 2000"))."\n";
echo "날짜: " . date('Y-m-d', strtotime("+1 day"))."\n";
echo "날짜: " . date('Y-m-d', strtotime("+1 week"))."\n";
echo "날짜: " . date('Y-m-d', strtotime("+1 week 2 days"))."\n";
echo "날짜: " . date('Y-m-d', strtotime("next Thursday"))."\n";
echo "날짜: " . date('Y-m-d', strtotime("last Monday"))."\n";
?>
1
2
3
4
5
6
7
8
결과값 :
현재: 2020-05-28
날짜: 2000-09-10
날짜: 2020-05-29
날짜: 2020-06-04
날짜: 2020-06-06
날짜: 2020-06-04
날짜: 2020-05-25