我的统一时间是1336608000
也就是2012-5-10。
一年前10个月前的今天- 2014-03-06
现在我要做的是,按现在的情况,在一年前和几个月前完成产出。所以我想展示:
1 year 10 months ago.
我在这里看到的大多数timeAgo函数在堆栈溢出和整个互联网上都显示时间前是“2年前”,这是错误的。我尝试过像8-10 php函数那样显示确切的月计数。
所以我的问题是,是否有一个php时间前函数显示确切的年份和月份计数,而不是舍入它?
谢谢
发布于 2014-03-05 23:51:41
我找到了this answer by Glavić,它工作得很好。
我帮你调整了一下..。
用法:echo time_elapsed_string('2012-5-10',true);
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',
);
foreach ($string as $k => &$v) {
if ($diff->$k) {
$v = $diff->$k . ' ' . $v;
} else {
unset($string[$k]);
}
}
if (!$full) $string = array_slice($string, 0, 1);
return $string ? implode(', ', $string) . ' ago' : 'just now';
}https://stackoverflow.com/questions/22211867
复制相似问题