显示时间如“2 分钟前”

Moh*_*ari 1 php yii yii2-advanced-app

我是 yii2 的初学者。我想显示帖子创建的时间。我使用波纹管函数来获取它,但结果只是0 分钟前。谁能帮我?

<?php
function notifyDate($myStartDate) {
  $now = Yii::$app->jdate->date('Y/m/d') . '- ' . date('H:i:s');

  $datediff = $now - $myStartDate;
  if ($datediff < (60 * 60)) {  // Minutes
      return floor($datediff / (60 * 60 * 24)) . " Minutes ago ";
  }
  if ($datediff < (60 * 60 * 24)) {  // Hours
      return floor($datediff / (60 * 60 * 24)) . " Hours ago ";
  }
  // this  return the number of day
  return floor($datediff / (60 * 60 * 24));
}
?>

<?php
  $last_comment = Comment::find()->orderBy(['id' => SORT_DESC])->one();
  $myStartDate = $last_comment['created_time'];
  $now = Yii::$app->jdate->date('Y/m/d') . '-' . date('H:i:s');
?>

<span class="pull-right text-muted small">
    <em><?php echo notifyDate($myStartDate); ?></em>
</span>
Run Code Online (Sandbox Code Playgroud)

WeS*_*See 7

对于更优雅的显示,您可以使用

echo ( $timestampToDisplay < 60*60*24*365)
    ? Yii::$app->formatter->asRelativeTime($timestampToDisplay )
    : Yii::$app->formatter->asDate($timestampToDisplay );
Run Code Online (Sandbox Code Playgroud)

这将显示

  • 不到一年的时间戳的相对日期值
  • 超过一年的时间戳的绝对日期值