본문 바로가기

[Terry] PHP

9. PHP 시간 관련 함수

 PHP 시간 관련 함수

date

 시간에 관한 정보를 쉽게 가져올 수 있도록 도와주는 함수

형식

date(시간형식);

date(시간형식, 유닉스 타임 스탬프);   //유닉스 타임 스탬프에 해당하는 날짜정보를 알 수 있다.

매개변수

아래 표에 정리된 매개변수를 date함수에 넣어주면 그에 맞는 값이 리턴된다. 대소문자를 구분하는 것에 유의해야 한다.

   매개변수 설 명
 년도 L 윤년인지 여부를 표시 ex) 0 또는 1
Y 년도를 4자로 표시 ex) 2010
y 년도를 2자로 표시 ex)10
 달 F 달을 영문으로 표시 ex) January
m 달을 숫자로 표시 ex) 01, 02, ..., 12
M 달을 영문3글자로 표시 ex) Jan
n 달을 0없이 숫자로 표시 ex) 1, 2, ..., 12
t 몇일까지 있는 달인지를 표시 ex) 28, 30, 31
 날짜 d 날짜를 두 자리로 표시 ex) 01, 02, ..., 31
j 날짜를 0없이 표시 ex) 1, 2, 3, ..., 31
S 날짜를 영어에서 서수를 나타내는 2글자로 된 접미사로 표시 ex) st, th, rd
z 해당 년도의 몇 번째 날인지를 표시 ex) 0~365
 요일 D 요일을 세글자로 표시 ex) Fri
l (소문자L) 요일을 표시 ex) Friday
w 요일을 숫자로 표시 ex) 0(일요일), 1(월요일), ..., 6(토요일)
 시간 h 시간을 12시간 단위로 표시 ex) 01, 02, ..., 12
H 시간을 24시간 단위로 표시 ex) 00, 01, ..., 23
g 시간을 12시간 단위로 0없이 표시 ex)1, 2, ..., 12
G 시간을 24시간 단위로 0없이 표시 ex) 0, 1, 2, ..., 24
 분 i 분을 표시 ex) 00, 01, ..., 59
 초 s 초를 표시 ex) 00, 01, ..., 59
 기타 r 몇 가지 정보를 종합하여 표시 ex) Fri, 5 Apr 2002 21:54:51 +0900
U 기준 시점(GMT 1970년 1월 1일 00:00:00)으로부터 지난 시간을 초로 표시
Z 지역간의 시간 편차를 초단위로 표시 ex) -43200 ~ 43200

 예제

  1.  <?
  2. $time = date("Y");   //년도 출력

  3. $time1 = date("U");   //유닉스 타임스탬프 값 출력

  4. $time2 = date("Y년 m월 d일 H시 i분 s초", 0);   //1970년 01월 01일 09시 00분 00초 출력

  5. ?>

 

time

유닉스 타임 스탬프를 구하기위해 주로 이용하는 함수. date함수와 비슷한 함수이다.

형식

저장할변수 = time();

예제

  1. <?
  2. $a = time();

  3. echo $a;

  4. ?>

 

microtime

백만분의 1초까지 측정한 시간 값을 알려주는 함수

변수에 저장된 값은 "소수점 이하의 초" "자연수 형태의 초"  와 같은 형식을 가진다.

뒤에 나오는 자연수 형태의 초는 유닉스 타임 스탬프 값이 된다.

형식

저장할변수 = microtime();

예제

  1. <?
  2. $a = microtime();

  3. echo $a;

  4. // 각각의 초를 배열에 저장

  5. $time = explode(" ", microtime());    //" "을 구분자로 배열에 저장

  6. echo "

  7. microtime : $time[0] <br>

  8. timestamp : $time[1]

    ";

  9. ?>

 참고

간단하게 microtime구하는 방법

  1. <?
  2. echo (double)microtime();

  3. ?>
 mktime

주어진 시간을 기준으로 유닉스 타임 스탬프를 구하는 함수

형식

저장할변수 = mktime(시간, 분, 초, 달, 날짜, 년도);

예제

 <?

$a = mktime(10, 52, 14, 4, 19, 2010);   //2010년 4월 19일 10시 52분 14초의 유닉스 타임스탬프를 구한다.

echo $a;

?>

 

checkdate

 지정된 날짜가 실제로 존재하는 날짜인지를 확인하고 그 결과를 빈 값(False) 또는 1(True)로 리턴해준다.

형식

저장할변수 = checkdate(달, 날짜, 년도);

 예제

  1. <?
  2. echo checkdate(10, 31, 2010);    // 2010년 10월 31일이 존재하는지 확인

  3. ?>

 

 기념일 계산하기

방법

  1. 현재의 시간 정보를 구한다. (유닉스 타임스탬프, 시간, 분, 초)
  2. 기념일의 유닉스 타임스탬프를 구한다.(2009년 11월 1일)
  3. 현재의 유닉스 타임스탬프와 기념일의 유닉스 타임 스탬프 차이를 구한다.
  4. 두 유닉스 타임 스탬프의 차를 날짜로 환산

 예제1 : 2009년 11월 1일 부터 몇일이 지났는지 계산

  1. <?
  2. //현재의 시간 정보를 구한다.

  3. $timestamp_now = time();   //현재 유닉스 타임스탬프

  4. $hour_now = date('H');    //현재 시간

  5. $min_now = date('i');   //현재 분

  6. $sec_now = date('s');   //현재 초

  7. //기념일의 유닉스 타임 스탬프 구하기

  8. $timestamp_annu = mktime($hour_now, $min_now, $sec_now, 11, 1, 2009);

  9. //유닉스 타임 스탬프의 차이 구하기

  10. $result = $timestamp_now - $timestamp_annu;

  11. //결과를 날짜로 환산해서 출력

  12. echo $result/86400;   //24시간*60분*60초 = 86400초

  13. ?>

 예제2 : 2010년 11월 1일까지 몇일이 남았는지 계산

  1. <?
  2. //현재의 시간 정보를 구한다.

  3. $timestamp_now = time();   //현재 유닉스 타임스탬프

  4. $hour_now = date('H');    //현재 시간

  5. $min_now = date('i');   //현재 분

  6. $sec_now = date('s');   //현재 초

  7. //기념일의 유닉스 타임 스탬프 구하기

  8. $timestamp_annu = mktime($hour_now, $min_now, $sec_now, 11, 1, 2010);

  9. //유닉스 타임 스탬프의 차이 구하기

  10. $result = $timestamp_now - $timestamp_annu;

  11. //결과를 날짜로 환산해서 출력

  12. echo abs($result/86400);   //24시간*60분*60초 = 86400초

  13. ?>

 

 

 

 

이 글은 스프링노트에서 작성되었습니다.