显示最近的日期和时间的评论在php
问题描述:
我面临的问题,显示最新评论当我评论和1小时后,我看到输出是“刚才”,但我想显示1小时去和显示最近一次 如何显示显示最近的日期和时间的评论在php
请帮我在这种情况下
这里所有的意见是我的代码:
$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;
}?>
答
尝试此方法
<?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);
@siddartha esunuri。感谢您的帮助:) –
然后批准我的答案@HardChapla –