实际上,我想创建一个函数,如果日期大于1,它应该返回时间年龄,如1小时前。
我已经完成了大约80%的Time Ago功能,现在我想再添加一个功能。
function dateTimeExe ($time)
{
$time = time() - $time; // to get the time since that moment
$tokens = array (
31536000 => 'year',
2592000 => 'month',
604800 => 'week',
86400 => 'day',
3600 => 'hour',
60 => 'minute',
1 => 'second'
);
foreach ($tokens as $unit => $text) {
if ($time < $unit) continue;
$numberOfUnits = floor($time / $unit);
return $numberOfUnits.' '.$text.(($numberOfUnits>1)?'s':'');
}
}
请查看输出,这可能有助于理解我的问题。
如果day小于1,则// 1 min ago
或1 hour ago
工作正常现在我想添加,如果day大于1,那么它应该以这种格式返回日期// 18 May 2015
。
你能做的就是通过getTimestamp()方法从datetime (http://php.net/manual/fr/class.datetime.php)获取时间戳,最后你可以将它们相互比较
假设$date是一个Datetime实例:
$time = time() - $time->getTimestamp();
实际上,我在函数中添加了if语句,现在它工作了
if ($time>86400) {
return date('d F Y');
}else{
foreach ($tokens as $unit => $text) {
if ($time < $unit) continue;
$numberOfUnits = floor($time / $unit);
return $numberOfUnits.' '.$text.(($numberOfUnits>1)?'s':'').' ago';
}
}