2016-02-07 4 views
0

Добрый день, ребята, у меня немного проблемы с тем, как я могу сделать это как xx month/s ago и year/s ago, если дни достигают количества месяцев/лет , Является ли это возможным ? Во всяком случае, я создаю модуль обмена сообщениями. Это мой код. Advance спасибо за вашу помощь ребята
Сообщение дата (1 месяц назад или лет)

<?php  
    date_default_timezone_set('Asia/Manila'); 
    $now = strtotime(date("Y-m-d H:i:s")); 
    $date = strtotime($key->message_date); //this is the date where message was sent 
    $dateDiff = abs($now - $date); 
    $fullDays = floor($dateDiff/(60*60*24)); 
    if($fullDays==0) 
    { 
     echo " Today "; 
    } 
    else if($fullDays==1) 
    { 
     echo " Yesterday "; 
    } 
    else 
    { 
     echo $fullDays ." days ago"; 
    } 
    $at=date('g:iA',$date) 
    ?> at <?php echo $at?> 
+0

И что работает неправильно? –

+0

Я не знаю, как я могу это сделать, например, 1 месяц назад, например ... Я не могу просто разделить его на 30. Что делать, если месяц имеет только 28 дней? и это уже 1 месяц назад. Как я могу это решить? –

+0

Возможный дубликат http://stackoverflow.com/questions/676824/how-to-calculate-the-difference-between-two-dates-using-php – Wizard

ответ

0

Вы можете использовать эту функцию, вы должны пройти время сообщения в качестве аргумента

function convert_time($ptime){ 
     $etime = time() - $ptime; 

     if($etime < 1){ 
      return '0 seconds'; 
     } 

     $a = array(12 * 30 * 24 * 60 * 60 => 'year', 
        30 * 24 * 60 * 60  => 'month', 
        24 * 60 * 60   => 'day', 
        60 * 60     => 'hour', 
        60      => 'minute', 
        1      => 'second' 
       ); 

     foreach ($a as $secs => $str){ 
      $d = $etime/$secs; 
      if($d >= 1){ 
       $r = round($d); 
       return $r . ' ' . $str . ($r > 1 ? 's' : '') . ' ago'; 
      } 
     } 
    } 

В этой функции вы можете получить «(1) вторая/минута/час/день/месяц/год назад »

+0

Каково значение $ ptime? мое значение находится в формате Y-m-d h: i: s –

+0

Преобразование Y-m-d h: i: s через strtoime ('Y-m-d h: i: s') –

Смежные вопросы