홈으로 홈으로 | 무료회원가입 | 아이디/비번찾기 | 즐겨찾기
추천음악방송메인홈1대1상담음악방송청취

음악배달(구독하세요)
음악가사 검색
온라이브스토어(앱다운로드)
온라이브(방송등록및청취)
Search Video Best 50
금영노래방
TJ노래방
유튜브 동영상 다운로드
POP Player
신나는 고스톱
컴퓨터 오목
작은 음악다방
운.영.자.1대1.상담
FAQ\지원.프로그램
Q&A\고.객.지.원

자동러시 웹플레이어신청

보안∵서버∵쿠키
윈도우∵프레임
이미지∵배경
시간∵달력∵계산
상태바∵타이틀바
음악∵영상
폼∵전송∵테이블
키보드∵마우스
효과∵링크∵메뉴
Script∵php
기타
PHP 강좌
윈도우관련팁
웹관련팁
홈페이지제작팁
기본강좌
레지스트리
윈도우서버
리눅스서버
Android
시간함수 활용하기...
6년 전
웹프로그램에서 시간함수는 여러가지로 사용이 됩니다.
그쵸?^^

언제?.....-_-?

게시판에 글을씁니다......그럼 글쓴 시간이 기록되죠;;;

아니면 뭐 지금 시간을 표시 한다던가....
월드컵은 몇일이 남았고......누구누구가 만난지 몇일이 되더라...

뭐 이런걸 하는데 쓸수 있다 이거죠;;;

php에서 이런 시간을 가져오는 함수는 date()와 time()이 있습니다.
(-_-a 더 있을지도;;)
그중에서 date()에 대해서 집중적으로-_-! 알아보겠습니다.

다른분들은 모르겠는데 전 time()보단 date()를 많이 쓰기때문에^^;

먼저 Unix timestamp 라는게 있습니다...
읽으면;;; 유닉스타임스탬프;;;; -_-a;;;

이건 별건 아니고.....기준시를 말하는건데...
1970년 1월 1일 09시 00분 00초...부터 지금 현재시점까지를 초로 환산 한것 입니다.

@_@계산해보세요 얼마나 나올런지;;;

암튼 전체적으로 그 유닉스타임만 알면 현재 년도 날짜 시간 분 초까지 다 알아낼수가 있는것이죠... 그쵸?
(나누기 몇번 하다보면 다 나온다 그거죠^^)

암튼....그래서 상당히 유용하고 간편하게 사용할수 있는게 유닉스타임입니다.
그럼 구해볼까요?

<?
$unix_time=time();
echo $unix_time;
?>

-_-이게 다입니다.....그냥 echo time(); 라고 하셔도 상관없겠죠...
이렇게 하면 현재 시간이 유닉스 타임으로 떠억~찍혀집니다.
근데 그걸 사람이 알아 듣기엔...좀 무리죠;;;
언제 그걸 다 나누기 하고 앉아있겠습니까.......자 가공합시다!

date()라는건 간편하게 현재 시간을 가공해 줍니다.
일단 date()함수로 유닉스타임스탬프를 구해볼까요~

<?
echo date('U');
?>

(U는 대문자 입니다...주의하세요;;)
이렇게 하면 echo time()과 같은 결과를 내줍니다.
결국 time()과 date('U')는 같은 거겠죠....

그럼 이걸 한번 실행해 볼까요?

<?
echo date('Y-m-d');
?>

결과는?

2001-10-15  

이런식일 겁니다...현재 년 월 일이 나오죠...
이런식으로 date()함수에 매개변수를 넣어주면 그대로 가공되어 나옵니다.
그럼 어떤 매개 변수가 있을까요?;;;  밑으로 쭈우욱~~~

a
"am" 또는 "pm"

A
"AM" 또는 "PM"

d
두자리로 표현되는 날짜, 즉 "01"~"31"

D
세글자로 표현되는 요일, 즉 "Fri"

F
월을 긴 문장으로 나타냅니다. 즉 "January"

h
시간을 12시간 단위로 나타냅니다. "01"~"12"

H
시간을 24시간 단위로 나타냅니다.

g
시간을 12시간 단위로 0 없이 나타냅니다. "1"~"12"

G
시간을 24시간 단위로 0 없이 나타냅니다. "0"~"24"

i
분을 나타냅니다. "00"~"59"

j
날짜를 0 없이 나타냅니다. "1"~"31"

l
(L의 소문자)요일을 나타냅니다. "Friday"

L
윤년인지의 여부를 나타냅니다. "0" 또는 "1"

m
달을 나타냅니다. "01"~"12"

n
0 없이 달을 나타냅니다. "1"~"12"

M
3글자로 달을 나타냅니다. "Jan"

s
초를 나타냅니다. "00"~"59"

S
영어에서 순서를 나타내는 2글자로 된 접미사; "th", "nd"

t
주어진 달의 날 수; 즉 "28"~"31"

U
기준시점(GMT 1970년 1월1일 00:00:00)으로부터 지난 시간을 초로 표시

w
요일을 숫자로 표시합니다. 즉 "0"(일요일) ~ "6"(토요일)

Y
4글자로 연도표시, "1999"

y
2글자로 연도표시, "99"

z
날짜를 표시, "0"~"365"

Z
지역간의 시간편차를 초단위로 표시, 즉 "-43200"~"43200"


헥헥.......복사해다가 붙이느라고 힘들었습니다 -_-;;

암튼 웬만한건 외워 두시는게 좋겠죠;;;

한가지 중요한건 지금 시간이든 뭐든 시간을 파일이나 어디에 저장할때에는 유닉스타임스탬프로 저장해두는게 좋습니다.

예를 들어 볼까요?

제가 지금 글을 썼습니다....그래서 글쓴 시간을 저장합니다..
저장할때는 유닉스타임스탬프로;;;  
그러니까 $time=time();이라고 해놓고 $time값을 저장하면 되겠죠?...

이제 그걸 꺼내서 년-월-일 형식으로 화면에 보여줍니다...
이렇게 하면 됩니다...

<?
echo date('y-m-d',$time);
?>

위와 같이 해주시면 유닉스타임스탬프인 $time가 년-월-일 형식으로 가공되어 화면에 출력됩니다...

+_+신기하죠;;;; (-_-a아닌가..)

그럼 이번엔 좀 다른걸 해볼까요;;

2001년 5월 13일부터 지금까지 몇일이나 지났는가를 구하는 프로그램을 짜볼까요...?

어떻게 해야하죠?+_+;;

-_-a;;;;대충 date를 써야 할것 같긴한데.....애매하죠;;;
쉽게 생각해보죠;;;

현재날짜-2001년5월13일=답

그쵸?....근데 날짜가 이렇게 더하기 빼기가 되는것도 아니죠;;
또 문제가 있습니다. 날짜에서 날짜를 뺀다고 해도....시간이 문제죠
지금이 오후 10시라면 정확이 2001년5월13일10시를 빼주어야 합니다.
1초라도 차이가 나면 정확한 답이 나오지 않겠죠....

mktime()이라는 함수가 있습니다.
이건 주어진 시간정보를 갖고 그시간의 유닉스타임스탬프를 구해줍니다.
형식은....

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

요렇습니다.... 순서가 좀 헷갈리죠...년월일시분초...면 좋은데;;;
저건 아마도 영어식 표기순서겠죠^^........-_-;;서양애들이란;;;

<?
$time=mktime(0,0,0,5,13,2001);
?>

자 위와 같이 해주면....2001년 5월 13일 00시 00분 00초의 유닉스타임스탬프값이 $time에 들어갑니다.
엇...그런데 이게 아니죠.....아까 말했듯이 시,분,초는 현재 시간과 같게 해주어야 합니다.....그래야 몇일인지 계산이 되겠죠....^^?
그래서 이렇게 맞춰 줍니다....

<?
$h=date('H');
$i=date('i');
$s=date('s');
$time=mktime($h,$i,$s,5,13,2001);
?>

보시면 알겠지만...$h에는 현재시간, $i에는 분, $s에는 초를 넣어주고 $time값에 2001년5월13일의 현재 시간과 같은 시점의 유닉스타임스탬프가 들어가겠죠....헉헉;;;

@_@뭔얘긴지 아시죠?...
지금이 12시23분45초라면 $time에는 2001년5월13일12시23분45초의 유닉스타임스탬프가 들어간다는 것입니다.

그런데 여기서 주의하실것은 h와 H입니다. h는 am과 pm이 무시되고 표시되는것인데 낮12시도 12이고 밤12시도 12입니다...
이렇게 나오면 곤란하겠죠....? 잘못하면 계산상의 오차가 12시간이 될수 있습니다...-_-오로~~
그래서 꼭 대문자 H를 써주어야 한다는거죠....요놈은 0~24시까지 표현해 줍니다....그래야 계산이 되겠쬬~

자 암튼.....이렇게 시간을 구해놨으니 그냥 빼면 됩니다.....
뺍시다!!

<?
$h=date('H');
$i=date('i');
$s=date('s');
$time=mktime($h,$i,$s,5,13,2001);
$now=time();
$day=($now-$time)/24/60/60;
echo $day;
?>

@_@아따 복잡해 졌네요...막 나누기 나오고 그러니까 어지러우시죠 -_-;
차근차근 보죠;;;
일단 $time변수나오는 부분까지는 위소스와 같습니다...

$now=time();는 현재 유닉스 타임스탬프를 $now에 집어 넣는거죠...
그리고 빼주게 되겠죠?

$day=($now-$time)/24/60/60;

$day라는 값에 일단 결과를 넣는것입니다.
($now-$time)은....현재시간에서 5월13을 빼주는 거죠........
그런데 이렇게 빼버리면 몇일......이렇게 나오는게 아니라.....
몇초......-_-이렇게 나오죠;;;; 왜냐 유닉스타임스탬프로 뺐으니까;;;

이제 이...몇초..로 나온놈을 몇일로 바꿔주어야죠...간단한 산수 입니다.
퀴즈하나 내죠.......

1분은 몇초?-_-?

60초.......-_-오호호호....쉽게 맞추시네요;;

1시간은 몇분?

60분.....맞죠...

1일은 몇시간?....

^^네 24시간........짝짝짝.....

정리해보죠;;;
초를 일로 환산하려면......초/24/60/60=일

-_-?초등학교 나오셨죠?....

그냥 그겁니다......
$day=($now-$time)/24/60/60;
그쵸?^^

그래서 결론적으로 $day라는 값에 몇일...이냐 라는게 들어가는거고
이 연산에서는 절대 나머지가 나오지 않고 딱~ 정수로 떨어지게 되어있습니다.....왜죠?.........아까 초까지....시간을 맞춰놓고 뺐죠...
그러니까 어쩌다가 하루가 23시간 59초가 된다거나 하지 않는 이상은 절대 나머지나 소숫점이 나올리가 없다는 거죠.....

그래서 결국 2001년5월13일부터 오늘 까지 몇일이 지났나......하는걸 알아내게 됩니다.....
흠흠.....뭔 기념일 챙기실때 쓰시면 좋을듯 하네요..^^

한번 이런것도 생각해보세요...2002년 월드컵까지 몇일 남았나....
뭐......똑같은거겠죠;;;

자....그외에도 이 시간...이라는것은 이렇게로도 쓰입니다.
어떤것에 특정한 아이디를 부여할때 말이죠;;

이 시간이란걸 쓰면 참 편하겠죠...
중복될 염려도 없고요.....

어떤것에 각각의 고유한 아이디를 줄때 유닉스타임스탬프값을 아이디로 줍니다. 웬만해서 겹칠리가 업겠죠...
그런데 만약 정확히 1초의 오차도 없이 같은시각에 아이디를 주게 된다면 -_-a;;;

그럴땐 좀더 확율을 줄여줘버리면 됩니다.
microtime() 이라는 함수는 마이크로세컨드 단위로 지금 시간을 알려줍니다. 훨씬 중복되기 힘들겠죠?

getMicroTime() 이라는 함수를 그냥쓰셔도 되고....
echo getMicroTime();

그냥 이렇게 하셔도 됩니다.
echo (double)microtime();
추천추천 : 231 추천 목록
번호 제목
3,012
 텍스트 줄바꿈, 글자자르기 CSS
3,011
 jQuery Mobile에서 유용한 코드 10가지.
3,010
 [PHP] dirname()함수와 $_SERVER 관련 상수들
3,009
 [PHP] 파일 크기, 사이즈 불러오는 함수, filesize()
3,008
 [jQuery] jQuery Quick API
3,007
 [ transition ] 링크 hover 색상 변화 속도 조절
3,006
 PHP 5.3.0 에서 사라진 함수들 대체
3,005
 어떤 파일들이 include 나 require 되었는지 확인하는 함수(get_included_files)
3,004
 PHP 날짜 형식 및 계산하기(날짜 더하고 빼기)
3,003
 jQuery Mobile에서 유용한 코드 10가지.
3,002
 값이 배열 안에 존재하는지 확인하는 in_array함수
3,001
 사용자가 웹브라우저에서 뒤로가기를 했을때 감지하는 방법
3,000
 [jQuery]버튼 활성화, 비활성화
2,999
 jQuery show() / hide() / toggle() 사용법
2,998
 jquery 여러가지 이벤트
2,997
 border-radius 속성
2,996
 네이버 오픈API 음성합성 API 사용하는 PHP 샘플코드
2,995
 UTF8 한글 자르기..
2,994
 iconv 에러 발생시 계속 처리하기 옵션
2,993
 [PHP] 현재 페이지의 도메인 , URL 정보 알아내기.
2,992
 [PHP] 막강 기능 배열..
2,991
 [CSS] - Input clear `X ` 버튼 제거 ( IE, Chrome, Firefox )
2,990
 [Mobile] - 모바일웹 Href 태그속성들
2,989
 [JqueryMobile] - 현재화면의 가로세로 사이즈 구하기
2,988
 [JqueryMobile] - 화면의 가로, 세로 사이즈 구하는 방법
2,987
 jquery로 가로 넓이(width), 세로 높이(height) 자동 조절
2,986
 iframe 높이 jquery로 자동조절하기
2,985
 jQuery 오른쪽 영역의 높이를 왼쪽 영역의 높이와 동일하게 하기
2,984
 jquery에서 테이블 짝수, 홀수 번째 TR 배경색 변경하기
2,983
 jquery에서 테이블에 마우스 오버시 해당 행의 배경색상 변경하기
2,982
 jquery 스크립트내 특정값 확인하기 (디버깅)
2,981
 jquery cookie (jquery.cookie.js)
2,980
 jquery div 기본 넓이, 높이 계산 및 padding, border 포함 하기
2,979
 jquery 다른버전 추가 사용시 충돌 방지 (카페24 스마트디자인 기본내장 jquery 1.4.4 버전과 충돌시 해결방법)
2,978
 특정 페이지 종료시 확인 경고창 출력
목록
추천음악방송
인기트로트모음
지루박디스코메들리
밤무대애창곡
전자올겐경음악
콩뮤직
작은 음악다방
종합성인가요방
카바레 음악
트롯디스코팡팡
관광 메들리
트롯카페
가요감상실
추억의옛노래
스페셜가요광장
BillBoard Free
Dance&Remix
추천가요모음
경음악.전자올겐
스페셜음악여행
WOLRD POPs
K-POP\BillBoard
JP\CN
POP TOP BEST
K.R.노래방

추천가요\인기
F뮤직 인기\발라드
F뮤직 애창\트로트
트로트성인가요
인기가요
프리미엄 POP
경음악\기타
프리미엄 최신가요
프리미엄 성인가요
가요1번지(종합)
뮤직하우스
동요\연변\반주\기타
앗싸! 뽕짝
가요 포장마차
가요축제\트롯1번지
댄스\메들리\리믹스
카페\명상\경음악\기타
추천가요\POP\기타
최신가요\인기가요
뮤직트로트 부산광역시부산진구 가야동 ㅣ 개인정보취급방침
Copyright (C) musictrot All rights reserved.