PHP에서 현재시간 함수와 응용

쇼핑몰 재고관리 프로그램을 PHP로 직접 짜서 사용하면서,
입출고 시 단순 시간 기록, 시간 계산에 함수를 사용하면서 참고 내용을 좀 찾아보았는데 나와있는 예제들이 실제와 좀 동떨어져 있는 경우가 많아 내 경우에 맞게 다시 정리했다.

PHP에서 현재시간을 출력하는 두가지 함수

한줄요약 : date()는 문자열 출력, time()은 타임스탬프(초단위)출력

date()함수

기능

문자열 형식으로 날짜와 시간값을 리턴한다.

사용법

사용법1 : date(날짜형식);
사용법2 : date(날짜형식, timestamp);

사용 예

MySQL DB를 사용할 때 24시간제 형식으로 문자열을 만들어서 DB에 넣고 빼는게 가장 편해서 그렇게 하고 있다.

내가 가장 자주 사용하는 네 자리 연도, 두 자리 월, 두 자리 날짜, 24시간제 두 자리 시간, 두 자리 분, 두 자리 초로 이루어진 아래와 같은 문자열을 출력하기 위해서는
2021-09-07 23:30:07

아래와 같은 코드를 사용하면 된다.

date("Y-m-d H:i:s");

엑셀 쓰던 것처럼 yyyy-mm-dd로 4 자리, 2 자리를 표현하는 방식은 아니다.

형식은 필요에 따라 자신에게 맞게 수정해서 쓰시라고 표로 정리했다.

구분설명
연(Year)Y연도 네자리 (1998, 2021, 2022 …)
연(Year) y두자리 연도 (98, 21, 22 …)
m두자리 월 (02, 03, 12 …)
M세자리 영문자 월 (Feb, Mar, Dec)
F영문자 월 (February, March, December …)
d날짜 두 자리 (03, 15, 28 …)
z해당년의 몇번째 날인지 (1월 1일의 경우 ‘1′ 출력, 11월 26일 : ‘329‘ 출력)
– 아래 사진 참조
요일D요일 영문자 세 자리 (Sun, Wed, Sat …))
요일I요일 영문자 (Sunday, Wednesday, Saturday …)
오전/오후AAM, PM
오전/오후aam, pm
시간h시간 두 자리, 12시간 표기 (07, 02, 07, …)
시간H시간 두 자리, 12시간 표기 (07, 12, 19, …)
i분 두 자리
s초 두 자리

쉬어가기 : z? 해당 년의 몇 번째 날? 이런걸 누가 써?

20년 12월 28일 생산품

의외로 제조업에서 이런 식의 날짜 표기를 쓴다.

아직 미국 외에는 이런 표기를 본적이 없는데

월-일로 관리하는 게 관리 측면에서 불편한게 있어서다.

한국은 년-주로 표기하는 경우는 종종 있다. 예를 들어 2021년의 50주 차 이면 ‘5021’로 표기하는 식.

유통기한이 짧은 식품의 경우는 저런 표기가 잘 없지만 유통기한이 3년, 5년 되는 화학제품, 타이어들이 저런 표기가 종종 있다.

time()함수

현재 시간을 초 단위(timestamp)로 출력한다.

예를 들어. 지금 이 글을 쓰는 시점인 2021-11-26 08:57:32는

‘1637884652’로 출력된다.

특정 두 시점의 시간 차이를 계산할 때 이런 timestamp형식이 계산하기가 편하다.

사용법

time();

사용 예

현재 시간을 일반적인 형식, timestamp형식 모두 출력해서 비교해보기

echo date("Y-m-d H:i:s");
echo "<br>";
echo time();

출력 결과

2021-11-26 09:01:40
1637884900

한 가지 주의해야 할 사항

date() 함수 이용 시

date("Y-m-d H:i:s"); 

라고 적어야 하는데 가끔

date("Y-m-d H:m:s"); 

로 적는 경우가 있다.

무엇이 잘못되었는지 보이는가?

‘분’표시를 i로 적지 않고 m으로 적는 실수이다.

엑셀 하면서 ‘분’을 m으로 표시하는 거에 익숙해져 있다 보면 하는 실수이다.

함께 읽어보면 좋은 글

Leave a Comment