본문 바로가기
dev/webDev

게시물에 넣는 hours ago 만들기 예제.

by Kelvin™ 2013. 2. 7.


페북이나 다른 부분의 경우 게시글의 작성일 대신에 ago 라는 것으로 표현하는 경우가 많아지고 있다.



이번에 우리도 그런 방식으로 게시글을 표현..


DB 상에서 등록일과 현재 추출하는 시간으로 해당 부분을 기술한다.


쿼리문은 다음과 같이.


,datediff(mi,regdate,getdate()) as diffmi '

,datediff(hour,regdate,getdate()) as diffmh '

,datediff(day,regdate,getdate()) as diffmd '

,datediff(month,regdate,getdate()) as diffmm '

,datediff(year,regdate,getdate()) as diffmy '


이렇게 하면 각 작성일 기준으로 몇분, 몇시간, 몇일, 몇월, 몇년의 기준 데이터가 나온다.


이걸 웹산에서 뿌려줄때 소스를  



                            If diffmy  <> 0 Then

                                Response.write diffmy  & " years ago"

                              ElseIf diffmm  <> 0 then

                                Response.write diffmm & " months ago"

                              ElseIf diffmd  <> 0 then

                                Response.write diffmd & " days ago"

                              ElseIf diffmh  <> 0 then

                                Response.write diffmh  & " hours ago"

                              ElseIf diffmi  <> 0 then

                                Response.write diffmi  & " minutes ago"

                              Else

                                Response.write "A Few minutes ago"

                            End if



이런식으로 만들면 된다.



다른 방법이 있으신분들은 공유를..  ^^;;



============================  추가분.. 


이렇게 사용하니 달이 넘어가 버리면 며칠전에 작성한 글이 1 month ago 로 나오는 문제 발생.


쿼리 수정.

datediff(mi,regdate,getdate()) as diffmi 

,(datediff(mi,regdate,getdate())/60) as diffmh 

,(datediff(hour,regdate,getdate())/24) as diffmd 

,(datediff(day,regdate,getdate())/30) as diffmm 

,(datediff(day,regdate,getdate())/365) as diffmy