我在评论时遇到显示最近评论的问题,1小时后我看到输出是"刚才#34;但我想显示1小时,并显示最近的所有评论 我该如何显示
请在这种情况下帮助我
这是我的代码:
$comments = mysqli_query($conn, "SELECT * FROM `store_review` WHERE store_id = '$id1' ORDER BY review_date DESC ");
$new_result1 = mysqli_num_rows($comments);
$time = $row['review_date']." ".$row['review_time'];
<div class="review-block-date"><?php echo $time; ?><br/><?php echo ago($time); ?></div>
这是我的功能:
<?php
function ago($mytime)
{
$time_ago1 = strtotime($mytime);
$cur_time = time();
$time_elapsed = $cur_time - $time_ago1;
$seconds = $time_elapsed ;
$minutes = round($time_elapsed / 60 );
$hours = round($time_elapsed / 3600);
$days = round($time_elapsed / 86400 );
$weeks = round($time_elapsed / 604800);
$months = round($time_elapsed / 2600640 );
$years = round($time_elapsed / 31207680 );
// Seconds
if($seconds <= 60)
{
$post_time = "just now";
}
//Minutes
else if($minutes <=60)
{
if($minutes==1)
{
$post_time = "1 minute ago";
}
else
{
$post_time = "$minutes minutes ago";
}
}
//Hours
else if($hours <=24)
{
if($hours==1)
{
$post_time = "1 hrs ago";
}
else
{
$post_time = "$hours hrs ago";
}
}
//Days
else if($days <= 7)
{
if($days==1)
{
$post_time = "yesterday";
}
else
{
$post_time = "$days days ago";
}
}
//Weeks
else if($weeks <= 4.3)
{
if($weeks==1)
{
$post_time = "1 week ago";
}
else
{
$post_time = "$weeks weeks ago";
}
}
//Months
else if($months <=12)
{
if($months==1)
{
$post_time = "1 month ago";
}else{
$post_time = "$months months ago";
}
}
//Years
else
{
if($years==1)
{
$post_time = "1 year ago";
}
else
{
$post_time = "$years years ago";
}
}
return $post_time;
}?>
答案 0 :(得分:2)
试试这个方法
<?php
function time_elapsed_string($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';
}
echo time_elapsed_string('2017-06-01 00:22:35');
echo "for full";
echo time_elapsed_string('2017-06-01 00:22:35',true);