因此,我当前的$ item ['date']函数以Y-m-d H:i:s
格式获取帖子的时间和日期。减去发布多少分钟前的时间
我想显示帖子张贴的分钟数,或者如果它是超过24小时,多少天前它是张贴或像0天和20小时前?类似的东西
为什么minus运算符在这里工作我的代码?
我当前的代码:
<p><?php echo date('Y-m-d H:i:s') - $item['date'] ?> minutes ago</p>
因此,我当前的$ item ['date']函数以Y-m-d H:i:s
格式获取帖子的时间和日期。减去发布多少分钟前的时间
我想显示帖子张贴的分钟数,或者如果它是超过24小时,多少天前它是张贴或像0天和20小时前?类似的东西
为什么minus运算符在这里工作我的代码?
我当前的代码:
<p><?php echo date('Y-m-d H:i:s') - $item['date'] ?> minutes ago</p>
我通常使用这个函数。像这样使用time_ago('2014-12-03 16:25:26')
function time_ago($date){
$retval = NULL;
$granularity=2;
$date = strtotime($date);
$difference = time() - $date;
$periods = array('decade' => 315360000,
'year' => 31536000,
'month' => 2628000,
'week' => 604800,
'day' => 86400,
'hour' => 3600,
'minute' => 60,
'second' => 1);
foreach ($periods as $key => $value)
{
if ($difference >= $value)
{
$time = round($difference/$value);
$difference %= $value;
$retval .= ($retval ? ' ' : '').$time.' ';
$retval .= (($time > 1) ? $key.'s' : $key);
$granularity--;
}
if ($granularity == '0') { break; }
}
return $retval.' ago';
}
你需要做的是什么都转换日期以时间戳第一,从当前日期的。减去原职日期和再改回你想要的格式。作为一个例子见下文。
$now = time();
$datePosted = strtotime($item['date']);
$timePassed = $now - $datePosted;
$agoMinutes = $timePassed/60; //this will give you how many minutes passed
$agoHours = $agoMinutes/60; //this will give you how many hours passed
$agoDays = $agoHours/24; // this will give you how many days passed
等等......
PHP的时间戳给出日期在几秒钟所以很容易计算,如果你需要的数学运算进行这项工作。