2014-12-05 3 views
0

그래서 현재 $ item [ 'date'] 함수는이 형식으로 게시물의 시간과 날짜를 가져옵니다 Y-m-d H:i:s.몇 분 전에 게시 할 시간을 뺀

게시 된 게시물의 수 또는 24 시간이 넘었을 때, 며칠 전에 게시되었거나 0 일 및 20 시간 전에 표시 되었습니까? 그와 같은 것

왜 마이너스 연산자가 내 코드에서 작동하지 않습니까?

내 현재 코드 :

<p><?php echo date('Y-m-d H:i:s') - $item['date'] ?> minutes ago</p> 

답변

0

일반적으로이 기능을 사용합니다. 이처럼 사용하십시오 time_ago('2014-12-03 16:25:26')

function time_ago($date){ 
    $retval = NULL; 
    $granularity=2; 
    $date = strtotime($date); 
    $difference = time() - $date; 
    $periods = array('decade' => 315360000, 
     'year' => 31536000, 
     'month' => 2628000, 
     'week' => 604800, 
     'day' => 86400, 
     'hour' => 3600, 
     'minute' => 60, 
     'second' => 1); 

    foreach ($periods as $key => $value) 
    { 
     if ($difference >= $value) 
     { 
      $time = round($difference/$value); 
      $difference %= $value; 
      $retval .= ($retval ? ' ' : '').$time.' '; 
      $retval .= (($time > 1) ? $key.'s' : $key); 
      $granularity--; 
     } 
     if ($granularity == '0') { break; } 
    } 
    return $retval.' ago';  
} 
0

당신이해야 할 것은 첫째 타임 스탬프 및 현재 날짜에서 원래의 게시물 날짜를 빼지하고 원하는 형식으로 다시 재 변환하는 두 날짜를 변환 할 수 있습니다. 아래 예제를 참조하십시오.

$now = time(); 
$datePosted = strtotime($item['date']); 

$timePassed = $now - $datePosted; 

$agoMinutes = $timePassed/60; //this will give you how many minutes passed 
$agoHours = $agoMinutes/60; //this will give you how many hours passed 
$agoDays = $agoHours/24; // this will give you how many days passed 

등등 ...

가 계산하고 수학 연산을해야 할 경우 작업을 쉽게 그래서 PHP의 타임 스탬프가 초 단위로 날짜를 제공합니다.