这会转换我datetime
中存储的mysql
,但每次不断提供12-31-1969, 7:00 PM
时,我会一直找到几个回复来解释原因,但不是解决问题的方法
我如何编辑它而不搞砸它,因为我想保持相同的布局,但修复它以显示正确的时间和日期
此代码如何运行是在time_ago上的第一个echo回调,它在它上面运行2行,然后沿着timeAgo函数向下移动到达调用顶部函数的最后一个回声
function converttotime_date($date) {
$date = strtotime($date);
return date("m-d-Y, g:i A", $date);
}
$curenttime= $row['post_date'];
$time_ago =strtotime($curenttime);
echo "".timeAgo($time_ago)."
function timeAgo($time_ago){
$cur_time = time();
$time_elapsed = $cur_time - $time_ago;
$seconds = $time_elapsed ;
$minutes = round($time_elapsed / 60 );
$hours = round($time_elapsed / 3600);
$days = round($time_elapsed / 86400 );
// Seconds
if($seconds < 60){
echo "$seconds seconds ago";
}
//Minutes
else if($minutes < 60){
if($minutes==1){
echo "1 minute ago";
}
else{
echo "$minutes minutes ago";
}
}
//Hours
else if($hours <= 12){
if($hours==1){
echo "1 hour ago";
}else{
echo "$hours hours ago";
}
}
//Hours
else if($hours <= 24){
echo "Today, ".converttotime($time_ago)." ";
}
//Hours
else if($hours <= 48){
echo "Yesterday, ".converttotime($time_ago)." ";
}
//Days
else if($days > 2){
echo " ".converttotime_date($time_ago)." ";
}
}
答案 0 :(得分:1)
问题出在行timeAgo
函数
//Days
else if($days > 2){
echo " ".converttotime_date($time_ago)." "; # this wrong
}
因为$time_ago
已经是Unix时间戳,所以不需要转换。
所以改为将其改为
//Days
else if($days > 2){
echo date("m-d-Y, g:i A", $time_ago);
}
并且不再需要converttotime_date()
。也许将其更改为formatDateDisplay
函数?