2011년 5월 25일 수요일

php 시간 변환

1. TimeT 타입 -> Date 타입(2011-01-18) 변환
date_default_timezone_set("Asia/Seoul");
$current = time();
$fmt_date = date("Y-m-d", $current));
echo("현재 시간(Date) : $fmt_date");


2. Date 타입 (2011-01-18) -> TimeT 변환
date_default_timezone_set("Asia/Seoul");
$current = date("Y-m-d", time());
$fmt_time = strtotime($current);
echo("현재 시간(Time) : $fmt_time");


3. 결과
현재 시간(Date) : 2011-01-18
현재 시간(Time) : 1295276400

결과는 현재 시간으로 표시된다.

---------------------------------------


PHP


time

- 1970년부터의 시간을 초단위 합산으로 나타낸다.

ex) time(); => 1260922955

microtime

- 1970년부터의 시간을 초단위 합산과 마이크로시간의 합산으로 나타낸다.

- 보통 단일값을 생성하는 가장 쉬운 방식으로 많이 쓰인다. 그러나 정말 동일시간이 나올수도 있으나

매우 확률이 낮다.

ex)microtime(); => 0.48481000 1260923053

date

- 받은 time값을 년,월,일로 나타낸다.

ex) date('Y-m-d') 혹은 date('Y:M:D',time())

mktime

- date와 반대로 날짜에서 unix 타임을 얻는다.

- 매개변수 mktime(hour, minute, second, month, day, year)


Javascript

Date 객체

d= new Date(); 로 데이트객체를 생성하면 여러조작가능하다.

d.getDate() - 오늘 일반환

getDay() - 요일반환

getFullYear - 네자리 연도 반환

getHours - 시간

getMilliseconds - 밀리세컨

getMinutes - 분

getMonth - 달

getSeconds - 초

getTime - 1970년부터의 초를 반환하는데 밀리초형식으로 반환


이 중간에 UTC를 붙이면 국제표준시 기준이 된다.

Date.parse()

넘겨받은 시간형식을 밀리초형식으로 반환한다.

setDate 일설정

setFullYear 연도

setHours 시간

....

get과 유사하게 쓰면됨.

많은 함수가 있는데 정리하긴 그렇고 일단 이런식이다.

Javascript Timer

- 자바스크립트에서는 내부적으로 타이머를 정해서 쓰는데 이를 정리해보자. 일단 페이지가 로드된후

한 페이지는 완결된 윈도우 프로그램과 비슷하기 때문에(메세지 드리븐 방식) 타이머를 쓴다면 여러 방식의 응용이 가능할 것이다.



setTimeout

- 밀리초 자료를 주고 이 시간 이후에 정해진 callback함수를 실행시킨다



간단한 예제

//


//

//    

//




clearTimeout

- setTimeout으로 설정한 timer를 해제한다.



ex) t1 = setTimeout("f1",1000);

     clearTimeout(t1);



MYSQL

Mysql 도 함수가 많은데 사실 개인적으로 선호하진 않는다. 뭔가 좋은 이유가 있다기보단 그냥 db는 내츄럴하게 이용하고 싶어서... 하지만 mysql 함수를 알면 일일히 자료값을 받아서 php에서 변환해서 보내는것보다 훨씬 편하게 소스를 짤수 있는 부분이 있다. 예를 주민등록번호 앞자리를 받아서 연령대 구분을 하려고 하는데 그걸 select로 받아서 보는게 아니고 그 연령대로 db query를 하려고 하는 것이다. 2000년도 이후는 계산이 필요하므로 단순히 안되니 mysql 내부에서 함수를 쓰기로 했다.

LEFT(str,n개)

str문의 왼쪽부터 n개의 정보를 리턴


PERIOD_DIFF(P1,P2) : 두개의 인자 사이의 달 수를 반환한다. 두개의 인자 모두 형식은 YYMM 또는 YYYYMM 이어야 한다.

- 여기 형식을 보면 p1,p2가 주민번호랑 유사한 형식이다.
P1-P2 형식이라서 -달이 나오면 P2에 지정된 수보다 앞선 달이라고 보면 된다.


* 주의점, 7010 과 같이 4자리 달수는 최초시점이 1970년 1월이 된다. 만약 6912 와 같은 숫자는 2069년 12월로 계산되어버린다.


완전한 산수가 되려면 200912 과 같은 6자리 연도를 써야된다.


curdate() 0000-00-00 형식으로 날짜를 반환한다


DATE_FORMAT(date,format) : 날짜를 해당 형식의 문자열로 변환하여 반환한다


curdate와 date_format을 조합하면 현재의 시간에 관한 다양한 조합을 만들수 있다.


그렇다면 date_format(curdate(),'%y') -> 두자리 연도를 반환


from_unixtime(유닉스시간)


unix_timestamp() => 유닉스시간


strtotime (영어날짜형식)

- mktime()과 비슷한 기능을 하지만 사용이 좀 더 쉽다. (개인적 생각~)

- mktime과 유사하게 +3 Day, +10 Month 등을 이용한 날짜의 연산도 가능하다.

- 결과값은 타임스탬프로 리턴하므로 필요에 따라 변환해 사용.

- 날짜의 간격을 계산할 경우는 86400 (60초*60분*24시)로 나누면 몇일인지 나오게된다.
intval((strtotime("2007-12-13")-strtotime("2008-01-01"))/86400)

- Date형식으로 변환할 경우는 date() 함수를 사용하면 된다.

관련링크:
http://kr2.php.net/manual/kr/function.strtotime.php
http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=38930

댓글 없음:

댓글 쓰기