쓸만한 php 시간함수
Posted by Albert 4806Day 1Hour 51Min 56Sec ago [2012-02-22]
<?
$ctime = date('Y-m-d H:i:s');
//$rtime = "1942-01-01 00:00:01";
//$rtime = "1941-05-19 09:00:00";
//$rtime = "20090606";
//$rtime = "20090606093924";
//$rtime = "2009-06-06 09:39:24";
//$rtime = date('Y-m-d H:i:s', strtotime("-2 hours -51 minutes -24 seconds"));
$xtime = date('Y-m-d H:i:s', strtotime("0 hours 0 minutes -1 seconds"));
echo "$ctime<br>\n";
echo "$xtime<br>\n";
//echo datetimediff($rtime) . "<br>\n";
//echo datetimediff($rtime, null, "ALL") . "<br>\n";
echo datetimediff($xtime,$ctime, "ALL") . "<br>\n";
function datetimediff($rtime, $ctime = null, $option = null){
if ($ctime) $cur_time = strtotime($ctime);
else $cur_time = time();
$ref_time = strtotime($rtime);
$cur_date = floor($cur_time / 86400);
$ref_date = floor($ref_time / 86400);
$datetimediff = $cur_time - $ref_time;
$datedist = $cur_date - $ref_date;
$datediff = floor($datetimediff / 86400);
$weekdiff = floor($datediff / 7);
$timediff = $datetimediff % 86400;
$hour = floor($timediff / 3600);
$min = floor($timediff % 3600 / 60);
$sec = floor($timediff % 3600 % 60);
$result = "";
if ($datedist>34) {
$result = date("Y년 n월 j일", $ref_time);
} else if ($weekdiff>0) {
$result = $weekdiff . "주 전";
} else {
if ($datediff>0) {
$result = $datedist . "일 전";
} else if ($timediff<=0) {
$result = "1초 전";
} else {
if ($hour) $result = $hour . "시간";
else if ($min) $result = $min . "분";
else $result = $sec . "초";
if ($result) $result .= " 전";
}
}
if ($option=='ALL') {
$result = "";
if ($datediff) $result .= ($result?" ":"") . $datediff."일";
if ($hour) $result .= ($result?" ":"") . $hour."시간";
if ($min) $result .= ($result?" ":"") . $min ."분";
if ($sec) $result .= ($result?" ":"") . $sec . "초";
$result .= " 전";
if ( ((int)$datediff < 0) || ((int)$hour < 0) || ((int)$min < 0) || ((int)$sec < 0) )
{
$result = "f";
}
}
return $result;
}
?>