내 머릿속 데이터베이스

[php]timestamp 값 연산하기 본문

Programming/Web Language

[php]timestamp 값 연산하기

파도소리 2014. 11. 23. 02:29

[php]timestamp 값 연산하기

공부 2014/07/17 18:24

니밀 갱장히 간단한걸 나는 왜 갱장히 오래 걸렸던건가

별에별 방법을 찾아봤지만 정말 제일 간단한 초연산 방법은


$time1 = "2014-04-07 17:55:32";

$time2 = "2014-04-07 17:55:32";


일때


$diff = strtotime($time1) - strtotime(time2);


이러면 되는것을 나는 왜 반나절 만에 찾았을까...

정말 간단한 것을 너무 어렵게만 생각했나BoA요

 

 


 

<?PHP

$시작일 = new DateTime('2012-01-01'); // 20120101 같은 포맷도 잘됨

$종료일 = new DateTime('2012-10-11');

 

// $차이 는 DateInterval 객체. var_dump() 찍어보면 대충 감이 옴.

$차이    = date_diff($시작일, $종료일);

 

echo $차이->days; // 284

 

 


date(format,timestamp)

a : "am" or "pm" 표시
A : "AM" or "PM" 표시
d : 오늘이 몇일인지 표시 "01" to "31"
D : 영문으로 요일을 표시 "Mon", "Fri"
F : 영문으로 달을 표시 "January", "July"
h : 12시간을 표시. 오후 3시라도 03으로 표시. "01" to "12"
H : 24시간을 표시. 오후 3시 경우 15로 표시. "00" to "23"
g : 12시간을 표시. h와 다른 점은 0이 없다. "1" to "12"
G : 24시간을 표시. H와 다른점은 0이 없다. "0" to "23"
i : 분을 표시. "00" to "59"
j : 오늘이 몇일인지 표시. d와 다른 점은 0이 앞에 없다. "1" to "31"
l(소문자 엘) : "Friday"식으로 표시
m : 달(month)을 표시. "01" to "12"
n : 달을 표시. 0없이 "1" to "12"
M : "Jan"으로 표시
s : 초(sec)를 표시 "00" to "59"
t : 이번 달의 마지막 표시 "28" 부터 "31"일 까지
U : 기준 시점(GMT 1970년 1월 1일 00:00:00)으로부터 지난 시간을 초로 표시
w : 이번 주를 숫자로 표시 "0"(일요일) 부터 "6"(토요일)로 표시
Y : 연도(year)를 4자리로 표시. "2001"
y : 연도를 2자리로 표시. "01"
z : 올해부터의 날(day) 표시. "0" 부터 "365" 로 표시

strtotime(datestr) : 스트링형태의 날짜를 php timestamp 로 바꿔주는 함수
- mysql 날짜 함수를 그대로 php 로 바꿀때 많이 쓰인다.

예) $todaytemp = date('Y-m-d'); // 오늘 년 월 일을 todaytemp에 넣는다.
     $datetemp = date('Y-m-d', strtotime($air_row[start_date_1])); // db에 저장된 문자열로된 날짜를 가져와서 Y-m-d 년월일만 datetemp에 넣는다.

if($datetemp >= $todaytemp){ // 오늘날짜부터 자료를 출력하는 조건문

이것은 여행사 홈페이지를 제작하면서 항공자료를 뿌릴때 오늘을 기준으로 자료를 뿌릴때 사용한 것이다. 그리고 오늘이 8일이고 내일이 9일일때 8일 자료는 모두 회색
9일자료는 흰색으로 구분할경우 $dd = date(d , strtotime($air_row[start_date_1])); 이렇게
db에서 일자료만 가져와서 $dd = $dd % 2 이런식으로 계산을 하면 결과는 0 or 1 이 나온다.
그러면 0일때 회색 1일때 흰색으로 스타일시트에서 뿌려주면 된다.

 

Comments