$ logintime value 1年完成意味着它将在1年前显示,但是假设2个月仅完成意味着我想在2个月之前显示,但是我的代码显示像60天之前,我不知道我在哪里犯了错误,剩下的小时,分钟都可以正常工作,只有一个月的问题, $logintime = 2016-02-27 03:00:00
function timeAgo($logintime) {
date_default_timezone_set('UTC');
date_default_timezone_set('Asia/Kolkata');
$start_date = new DateTime($logintime);
$since_start = $start_date->diff(new DateTime(date("Y-m-d h:i:s")));
if (intval($since_start->format('%Y') ) >= 1) {
echo $year = $since_start->format('%Y years ago');
} else if (intval($since_start->format('%m')) >= 12) {
echo $months = $since_start->format('%m month ago');
} else if (intval($since_start->format('%a')) >= 1) {
echo $days = $since_start->format('%a days ago');
} else if (intval($since_start->format('%h')) >= 1) {
echo $hourss = $since_start->format('%h hours ago');
} else if (intval($since_start->format('%i')) >= 1) {
echo $min = $since_start->format('%i minuts ago');
} else if (intval($since_start->format('%s')) >= 1) {
echo $min = $since_start->format('%s seconds ago');
}
}
您这一行代码:
else if(intval($since_start->format('%m')) >= 12){
它说如果月份> = 12,则显示几个月前,但您只有2个月。
因此,您应该考虑将其更改为:
else if(intval($since_start->format('%m')) >= 1){
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句