보험최저가로 가입하는요령 쉬운 돈벌기 방법
글수 769
PHP 시간관련 함수
오늘은 PHP 에서 제공하는 날짜 및 시간 관련 함수에 대해서 알아보겠습니다.
먼저, time() 함수부터 알아보겠습니다.
time() 함수의 역할은 현재 날짜 및 시간의 정보를 초 단위로 계산해서 보여주는 것으로, 아래 간단한 예제 코드를 통해 time() 함수를 사용하였을 때 어떠한 결과값을 얻을 수 있는지 보겠습니다.
<?
$current_time = time();
echo("실행 결과 : $current_time");
?>
위 예제 코드를 웹브라우저로 출력하면 다음과 같은 결과를 보실 수 있습니다.
실행 결과 : 1027091797
보시는 것처럼, 위 실행 결과값을 통해 우리는 현재 날짜와 시간을 쉽게 알 수가 없습니다.
왜냐하면, 위 time() 함수의 실행 결과값은 1970년 1월 1일 0시 0분 0초를 기준으로 현재 시점까지 경과된 초(second) 단위의 시간을 나타내주기 때문입니다.
따라서, 위에서 얻어진 time() 실행 결과값을 우리가 쉽게 알아볼 수 있는 날짜 및 시간 형태로 변환할 필요가 있는데, 이때 사용하는 함수가 date() 함수입니다.
그럼, time() 함수로 얻어진 현재 초 단위의 시간 정보를 date() 함수를 사용하였을 때 어떠한 출력값을 얻을 수 있는지 아래 예제 코드를 통해 살펴보겠습니다.
<?
$current_time = time();
$current_time = date("Y/m/d A h:i:s", $current_time);
echo("실행 결과 : $current_time");
?>
위 예제 코드에서 볼 수 잇는 것처럼, 먼저 time() 함수를 통해 현재 시점의 초 단위의 시간 정보를 $current_time 변수에 저장한 뒤, 그 결과값을 우리가 쉽게 알아볼 수 있는 형식으로 변환하기 위해서 date() 함수를 적용하였습니다.
date() 함수는 두 개의 인자를 가지는데, 첫 번째 인자는 두 번째 인자로 오는 초 단위의 시간 정보를 어떠한 형식으로 출력해 줄 것인지를 명시해 줍니다.
따라서, 위에 보이는 date() 함수의 표현식 즉, date("Y/m/d A h:i:s", $current_time) 는 $current_time 에 저장된 초 단위의 시간 정보를 "년/월/일 AM or PM 시:분:초" 형식으로 변환시키라는 의미입니다.
위 예제 코드를 웹브라우저로 확인하면 다음과 같은 결과가 나옵니다.
실행 결과 : 2002/07/20 AM 01:26:17
이상, 날짜 및 시간 관련 함수의 설명를 마치고 다음 강좌에서는 파일 처리 관련 함수에 대해서 알아보겠습니다.
먼저, time() 함수부터 알아보겠습니다.
time() 함수의 역할은 현재 날짜 및 시간의 정보를 초 단위로 계산해서 보여주는 것으로, 아래 간단한 예제 코드를 통해 time() 함수를 사용하였을 때 어떠한 결과값을 얻을 수 있는지 보겠습니다.
<?
$current_time = time();
echo("실행 결과 : $current_time");
?>
위 예제 코드를 웹브라우저로 출력하면 다음과 같은 결과를 보실 수 있습니다.
실행 결과 : 1027091797
보시는 것처럼, 위 실행 결과값을 통해 우리는 현재 날짜와 시간을 쉽게 알 수가 없습니다.
왜냐하면, 위 time() 함수의 실행 결과값은 1970년 1월 1일 0시 0분 0초를 기준으로 현재 시점까지 경과된 초(second) 단위의 시간을 나타내주기 때문입니다.
따라서, 위에서 얻어진 time() 실행 결과값을 우리가 쉽게 알아볼 수 있는 날짜 및 시간 형태로 변환할 필요가 있는데, 이때 사용하는 함수가 date() 함수입니다.
그럼, time() 함수로 얻어진 현재 초 단위의 시간 정보를 date() 함수를 사용하였을 때 어떠한 출력값을 얻을 수 있는지 아래 예제 코드를 통해 살펴보겠습니다.
<?
$current_time = time();
$current_time = date("Y/m/d A h:i:s", $current_time);
echo("실행 결과 : $current_time");
?>
위 예제 코드에서 볼 수 잇는 것처럼, 먼저 time() 함수를 통해 현재 시점의 초 단위의 시간 정보를 $current_time 변수에 저장한 뒤, 그 결과값을 우리가 쉽게 알아볼 수 있는 형식으로 변환하기 위해서 date() 함수를 적용하였습니다.
date() 함수는 두 개의 인자를 가지는데, 첫 번째 인자는 두 번째 인자로 오는 초 단위의 시간 정보를 어떠한 형식으로 출력해 줄 것인지를 명시해 줍니다.
따라서, 위에 보이는 date() 함수의 표현식 즉, date("Y/m/d A h:i:s", $current_time) 는 $current_time 에 저장된 초 단위의 시간 정보를 "년/월/일 AM or PM 시:분:초" 형식으로 변환시키라는 의미입니다.
위 예제 코드를 웹브라우저로 확인하면 다음과 같은 결과가 나옵니다.
실행 결과 : 2002/07/20 AM 01:26:17
이상, 날짜 및 시간 관련 함수의 설명를 마치고 다음 강좌에서는 파일 처리 관련 함수에 대해서 알아보겠습니다.
이제 여기 금요일 밤이에요..^^ 한국은 토요일이겠네요..
미국은 금요일밤이 한국의 토요일밤과 같은데.. 그래서 다들 파티하고.. 술마시고
열심히들 노는데.. 전 이렇게 방콕하고 있네요..--;;
뭐 어쩌겠습니까.. 운명이라 생각하고 열쒸미 강좌나 올려야죠..
시간 관련함수들에 대해서 한번 이야기 해볼까합니다.
아마 게시판뿐만 아니라.. PHP를 다룰때.. 시간을 다뤄야 하는 경우가 무지하게 많을겁니다.
뭐든 잘다루면 좋쵸..^^
꼭 필요한 함수들만 설명하도록 하겠습니다.
time()
현재 시간을 타임스탬프값으로 받아옵니다.
여기서 타임스탬프라는건.. 1970년인가.. 여튼.. 뭐 옛날 어느한날을 기준으로잡고
그 후로 흐른시간을 초로 환산한 시간이래여.. --;;
왜 이런걸 생각해냈는지는 모르겠지만.. 여튼 잘한일 같아요..^_^ 사용하기 편하거든요..
첨에는 좀 어색한것 같아도.. 나중에 자주 다루다 보면.. 이게 젤로 편해요..
현재 시간을 얻고싶다!!
$now=time();
끝!!
무지하게 간단하죠??
그럼 이걸 만약에 출력하거나 디비에 저장한다면.. 어떻게 보일까요??
제 홈페이지에 마지막으로 가입하신분(현재기준)의 타임스탬프값이
1029569828 으로 나오네요..^^
여튼.. 이렇게 저장이 됩니다.
그렇다면 이렇게 디비에 저장된걸.. 불러와서는 어떻게 "년-월-일" 이런식으로 출력할까요?
바로 date()라는 함수를 사용합니다.
사용방법은 이러합니다.
date("출력하고싶은 형태",값);
좀전에 $now=time(); 라고 현시간을 저장했죠??
그럼 이걸 "2002-8-17" 로 출력하고싶다면
echo date("Y-m-d",$now); 요렇게 하시면 됩니다..^^ 쉽죠??
여기서 Y가 년도, m이 달, d가 날짜죠..
date함수에서 사용하는 인수에 대해서 함 알아볼까요??
a : 'am' , 'pm' 을 나타냅니다.
A : 'AM' , 'PM' 을 나타냅니다.
d : 날짜를 2자리로 출력함 (01, 02, 03, .. )
j : 날짜를 한자리로 출력함 ( 0은 제외하고 1, 2, 3 .. ) [참고로 소문자 "제이" 임]
F : 달을 영문으로 나타냄 (January, February.. )
m : 달을 숫자로 표시 (01, 02, 03..)
M : 달을 영문으로 나타내지만.. 3자리로 나타냄 (Jan, Feb)
t : 주어진 달의 마지막 날짜를 나타냄 ( 28 ~ 31 )
h : 시간 (12시간 기준 11, 12, 1, 2, ...)
H 시간 (24시간 기준 11, 12, 13, 14...)
i : 분(숫자로 표시)
s : 초(숫자로 표시)
S : 영어 서수 (th, nd)
I : 요일의 긴표시 (sunday, monday..)
D : 요일(짧은영문으로 표기 sun, mon,..)
Y : 4자리 연도 (2001, 2002)
y : 2자리 연도
뭐 이정도를 사용할수가 있답니다..^^
마지막 예를 한번 보여드릴게요..
현재시간을 2002년 8월 17일 5시 11분 24초이렇게 표기할려면
date("Y년 m월 d일 H시 i분 s초",$now);요렇게 하면 된답니다..^^
사실 이두가지만 확실히 알고있어도 웬만한건 다 할수가 있답니다..^^
그래도 자주 사용되는 두가지 함수를 더 설명할게요..
mktime()함수입니다.
이것도 역시 타임스탬프값을 얻어오는겁니다.
근데.. time()은 현재시간을 타임스탬프값으로 바꾸는거고
mktime()은 원하는 시간을 정한다음 그 시간을 타임스탬프값으로 만드는거죠..
아마 제생각에 mktime에서 mk는 make가 아닐까 싶네요..^__^
사용법은 역시 아래를 보시면 됩니다.
mktime(시간, 분, 초, 월, 일, 년);
이렇게 사용하는겁니다. 이건 언제 많이 사용하냐면..
어제, 오늘, 그리고 내일을 정확하게 구분할때 사용을 한답니다.
즉, 오늘은 2002년 8월 17일 12시 땡 하면서 시작이 됐죠??
그럼 mktime(0,0,0,8,17,2002); 라고 하면 아마 되겠죠??
그럼 내일이 되기 1초전은? mktime(23,59,59,8,17,2002); 이렇게 하면..
오늘의 마지막 순간이 되겠죠?? ^^
이걸 어디다가 응용하냐구요??
많쵸... 예를 들어.. 카운터..
정확하게 오늘 온사람의 수를 구해야 할때..
또는 정확하게 오늘 가입한사람.. 등등등..
이렇게 이용하시면 됩니다.. 쉽죠??? 헤헤.. ^^
마지막으로 microtime
이건뭐냐.. 하면 타임스탬프값을 마이크로초로 만드는겁니다..
마이크로초가 왜 필요하냐구요??
사실 별 쓸모없죠..
근데 간혹.. 쿼리 시간재볼때.. 이걸 사용한답니다..
쿼리 또는 소스 읽는 시간은 초단위로 재면.. 거의 99% 0초로 나옵니다.
1초안에 모든게 끝나기 때문에..^^
그럴때 마이크로초로 구하는거죠..
소스의 가장첫부분에..
$start = microtime();
이라고 시작시간을 잽니다..
그리고 소스가 끝나는 부분에
$end = microtime() - $start;
라고 하면.. 소스가 실행되는동안의 마이크로초를 구할수 있겠죠? ^^
이렇게 사용하는거랍니다.
그외에도.. 몇가지 시간함수가 더 있는데..
사실 저도 잘 모르고.. 이 4개만 잘 알아도.. 충분하다고 확신합니다..^^
배고프다.. 자야집..
<ㅑㅇ~~
미국은 금요일밤이 한국의 토요일밤과 같은데.. 그래서 다들 파티하고.. 술마시고
열심히들 노는데.. 전 이렇게 방콕하고 있네요..--;;
뭐 어쩌겠습니까.. 운명이라 생각하고 열쒸미 강좌나 올려야죠..
시간 관련함수들에 대해서 한번 이야기 해볼까합니다.
아마 게시판뿐만 아니라.. PHP를 다룰때.. 시간을 다뤄야 하는 경우가 무지하게 많을겁니다.
뭐든 잘다루면 좋쵸..^^
꼭 필요한 함수들만 설명하도록 하겠습니다.
time()
현재 시간을 타임스탬프값으로 받아옵니다.
여기서 타임스탬프라는건.. 1970년인가.. 여튼.. 뭐 옛날 어느한날을 기준으로잡고
그 후로 흐른시간을 초로 환산한 시간이래여.. --;;
왜 이런걸 생각해냈는지는 모르겠지만.. 여튼 잘한일 같아요..^_^ 사용하기 편하거든요..
첨에는 좀 어색한것 같아도.. 나중에 자주 다루다 보면.. 이게 젤로 편해요..
현재 시간을 얻고싶다!!
$now=time();
끝!!
무지하게 간단하죠??
그럼 이걸 만약에 출력하거나 디비에 저장한다면.. 어떻게 보일까요??
제 홈페이지에 마지막으로 가입하신분(현재기준)의 타임스탬프값이
1029569828 으로 나오네요..^^
여튼.. 이렇게 저장이 됩니다.
그렇다면 이렇게 디비에 저장된걸.. 불러와서는 어떻게 "년-월-일" 이런식으로 출력할까요?
바로 date()라는 함수를 사용합니다.
사용방법은 이러합니다.
date("출력하고싶은 형태",값);
좀전에 $now=time(); 라고 현시간을 저장했죠??
그럼 이걸 "2002-8-17" 로 출력하고싶다면
echo date("Y-m-d",$now); 요렇게 하시면 됩니다..^^ 쉽죠??
여기서 Y가 년도, m이 달, d가 날짜죠..
date함수에서 사용하는 인수에 대해서 함 알아볼까요??
a : 'am' , 'pm' 을 나타냅니다.
A : 'AM' , 'PM' 을 나타냅니다.
d : 날짜를 2자리로 출력함 (01, 02, 03, .. )
j : 날짜를 한자리로 출력함 ( 0은 제외하고 1, 2, 3 .. ) [참고로 소문자 "제이" 임]
F : 달을 영문으로 나타냄 (January, February.. )
m : 달을 숫자로 표시 (01, 02, 03..)
M : 달을 영문으로 나타내지만.. 3자리로 나타냄 (Jan, Feb)
t : 주어진 달의 마지막 날짜를 나타냄 ( 28 ~ 31 )
h : 시간 (12시간 기준 11, 12, 1, 2, ...)
H 시간 (24시간 기준 11, 12, 13, 14...)
i : 분(숫자로 표시)
s : 초(숫자로 표시)
S : 영어 서수 (th, nd)
I : 요일의 긴표시 (sunday, monday..)
D : 요일(짧은영문으로 표기 sun, mon,..)
Y : 4자리 연도 (2001, 2002)
y : 2자리 연도
뭐 이정도를 사용할수가 있답니다..^^
마지막 예를 한번 보여드릴게요..
현재시간을 2002년 8월 17일 5시 11분 24초이렇게 표기할려면
date("Y년 m월 d일 H시 i분 s초",$now);요렇게 하면 된답니다..^^
사실 이두가지만 확실히 알고있어도 웬만한건 다 할수가 있답니다..^^
그래도 자주 사용되는 두가지 함수를 더 설명할게요..
mktime()함수입니다.
이것도 역시 타임스탬프값을 얻어오는겁니다.
근데.. time()은 현재시간을 타임스탬프값으로 바꾸는거고
mktime()은 원하는 시간을 정한다음 그 시간을 타임스탬프값으로 만드는거죠..
아마 제생각에 mktime에서 mk는 make가 아닐까 싶네요..^__^
사용법은 역시 아래를 보시면 됩니다.
mktime(시간, 분, 초, 월, 일, 년);
이렇게 사용하는겁니다. 이건 언제 많이 사용하냐면..
어제, 오늘, 그리고 내일을 정확하게 구분할때 사용을 한답니다.
즉, 오늘은 2002년 8월 17일 12시 땡 하면서 시작이 됐죠??
그럼 mktime(0,0,0,8,17,2002); 라고 하면 아마 되겠죠??
그럼 내일이 되기 1초전은? mktime(23,59,59,8,17,2002); 이렇게 하면..
오늘의 마지막 순간이 되겠죠?? ^^
이걸 어디다가 응용하냐구요??
많쵸... 예를 들어.. 카운터..
정확하게 오늘 온사람의 수를 구해야 할때..
또는 정확하게 오늘 가입한사람.. 등등등..
이렇게 이용하시면 됩니다.. 쉽죠??? 헤헤.. ^^
마지막으로 microtime
이건뭐냐.. 하면 타임스탬프값을 마이크로초로 만드는겁니다..
마이크로초가 왜 필요하냐구요??
사실 별 쓸모없죠..
근데 간혹.. 쿼리 시간재볼때.. 이걸 사용한답니다..
쿼리 또는 소스 읽는 시간은 초단위로 재면.. 거의 99% 0초로 나옵니다.
1초안에 모든게 끝나기 때문에..^^
그럴때 마이크로초로 구하는거죠..
소스의 가장첫부분에..
$start = microtime();
이라고 시작시간을 잽니다..
그리고 소스가 끝나는 부분에
$end = microtime() - $start;
라고 하면.. 소스가 실행되는동안의 마이크로초를 구할수 있겠죠? ^^
이렇게 사용하는거랍니다.
그외에도.. 몇가지 시간함수가 더 있는데..
사실 저도 잘 모르고.. 이 4개만 잘 알아도.. 충분하다고 확신합니다..^^
배고프다.. 자야집..
<ㅑㅇ~~
태초에 나는 개그이야기를 만들었다.
내말을 믿고 나를 따르면 천당,
내말을 믿지않고 나를 따르지 않으면 지옥,
나는 하늘나라(우주)에 사느니라.
그럼 난 외계인?




웃대가리

function dateDiff($date1, $date2){
$_date1 = explode("-",$date1);
$_date2 = explode("-",$date2);
$tm1 = mktime(0,0,0,$_date1[1],$_date1[2],$_date1[0]);
$tm2 = mktime(0,0,0,$_date2[1],$_date2[2],$_date2[0]);
return ($tm1 - $tm2) / 86400;
}
ex)
$today = date("Y-m-d");
$day=dateDiff($result[날짜],$today);
if($day>0){ //$result[날짜]가 큰 경우
}