개발 중인 모듈에서 시간 표시를 SNS 자주 사용하는.. "몇일전,몇분전" 으로 표시하려고합니다.
라이믹스
{zdate($oDocument->get('regdate'), 'relative')}
1일전
XE
{getTimeGap($document->get('regdate'), "Y.m.d H:i")}
2018.03.07 12:01
위와 같이 XE는 날짜 형식 그대로 출력을합니다.
제대로 표시하려면 어떻게 해야될까요?
개발 중인 모듈에서 시간 표시를 SNS 자주 사용하는.. "몇일전,몇분전" 으로 표시하려고합니다.
라이믹스
{zdate($oDocument->get('regdate'), 'relative')}
1일전
XE
{getTimeGap($document->get('regdate'), "Y.m.d H:i")}
2018.03.07 12:01
위와 같이 XE는 날짜 형식 그대로 출력을합니다.
제대로 표시하려면 어떻게 해야될까요?
댓글 8
public function time_elapsed($datetime, $full = FALSE)
{
$now = new DateTime;
$ago = new DateTime($datetime);
$diff = $now->diff($ago);
$diff->w = floor($diff->d / 7);
$diff->d -= $diff->w * 7;
$string = array(
'y'=>'Year',
'm'=>'Month',
'w'=>'Week',
'd'=>'Day',
'h'=>'Hour',
'i'=>'Minute',
's'=>'Second'
);
foreach($string as $k => &$v)
{
if($diff->$k)
{
$v = $diff->$k.' '.$v.($diff->$k > 1 ?'s':'');
}
else
{
unset($string[$k]);
}
}
if(!$full) $string = array_slice($string,0,1);
return $string ? implode(', ',$string).' ago':'just now';
}
XE는 함수를 따로 등록해서 사용하셔야 합니다.
저희가 스케치북 스킨에 댓글 등록시간을 출력해 주려고 사용한 코드 입니다.
{getTimeGap($comment->get('regdate'), "Y.m.d H:i")}
따로 무엇을 해주진 않았던 것으로 기억합니다. 저랑 같은 코드 인것 같은데요...
제 기억으로는 24시간 까지만 몇분전,몇시간전 으로 나오다가 24시간 경과하면 날짜로 나오는 것으로 알고 있습니다.
확인해 보니 func.inc.php 에 function getTimeGap이 있습니다.
XE는 따로 함수를 등록할 필요는 없을거라 생각됩니다.
웹지기님이 말씀하신것 처럼 xe의 getTimeGap은 일정 시간이 지나면 일반 시간으로 표시가 되는군요.
라이믹스에서는 zdate($oDocument->get('regdate'), 'relative') 좀 더 지난 시간들도 SNS 날짜 형식처럼 잘 표시됩니다.
그래서 제가 착각했습니다.