 |
|
|  |
| [함수] 트위터 나 페이스북 처럼 날짜데이터를 간소하게 출력 |
|
|
 |
16년 전 |
<?php
/**
* Params
* $sDate 시작일 (게시물 작성일)
* $eDate 종료일 (현재 시간 기준)
*/
function diffDate($sDate,$eDate)
{
$date[0]=strtotime($sDate);
$date[1]=strtotime($eDate);
if($date[0] >= $date[1])
{
return false;
}
$date[2]=strtotime(date('Y-m-d H:i:s',$date[1] - $date[0]));
$Y=date('Y',$date[2])-1970;
$m=date('n',$date[2])-1;
$d=date('j',$date[2])-1;
$H=intval(date('H',$date[2]))-9; //그리니치 표준시 우리나라일경우 -9
$i=intval(date('i',$date[2]));
$s=intval(date('s',$date[2]));
if($Y)
{
$returnDate= $Y;
$returnDate.= '년 전';
}
elseif($m)
{
$returnDate= $m;
$returnDate.= '달 전';
}
elseif($d)
{
$returnDate= $d;
$returnDate.= '일 전';
}
elseif($H)
{
$returnDate= $H;
$returnDate.= '시간 전';
}
elseif($i)
{
$returnDate= $i;
$returnDate.= '분 전';
}
else
{
$returnDate= $s;
$returnDate.= '초 전';
}
return $returnDate;
}
?>
#출력예제
echo diffDate('2010-01-01 00:00:20','2010-02-07 12:01:20');
//result : 1달 전
echo diffDate('2010-01-01 00:00:20',date('Y-m-d H:i:s'));
//현재 날짜의 차이를 계산에서 출력함
//result : 6달 전 (2010-07-24일 작성일 기준)
==========================================================================
PHP 5.3 쓴다면
<?
/**
* $t1 기준시간(없으면 현재시간으로 대체)
* $t2 비교시간
* by XEED(genesis@hotmail.co.kr)
*/
function DateDiff($t1, $t2) {
if(!$t2) return;
$trans = array('y' => '년', 'm' => '개월', 'd' => '일', 'h' => '시간', 'i' => '분', 's' => '초');
$ago = array(' 후', ' 전');
$t1 = new DateTime($t1);
$t2 = new DateTime($t2);
$t1 = $t1->diff($t2);
foreach($t1 as $key => $val)
if($val) return $diff = $val . $trans[$key] . $ago[$t1->invert];
return 'error';
}
echo DateDiff('2010-07-27 12:11:13', '2319-09-11 21:52:05'); // 309년 후
echo DateDiff('2010-07-27 12:11:13', '2010-07-21 15:38:42'); // 5일 전
echo DateDiff(null, '2010-06-11 15:38:42'); // (현재시간 기준) 1개월 전
echo DateDiff(null, '2010-07-27 08:38:42'); // (현재시간 기준) 25분 전
?> |
|
추천 : 457 |
추천
목록
|
|
|  |
|