2014-03-05 122 views
0

我的unixtime是1336608000TimeAgo - Year and Month ago

这正是2012-5-10。

1年6个月前从今天 - 2014年3月6日

现在我想要做的就是输出的年份和月份以前,因为它是。所以我想显示:

1 year 10 months ago.

最TIMEAGO功能我在这里看到和#1所有在互联网上显示的时间前为“2年前”,这是错误的。我已经尝试像8-10 PHP函数来显示确切的月份数

所以我的问题是,是否有一个PHP的时间前功能,显示确切的年和月计数,而不是四舍五入它?

感谢

+0

由于您自己似乎并不想自己做这项工作,因此这是一个图书馆/工具请求,它是无关紧要的。 –

+0

我想你让我错了。我并不擅长PHP开发人员。 – Towfiq

+0

这并不改变这个网站的内容,我不害怕。请在发布前阅读常见问题解答,尽管您应该在4年后知道这不是图书馆推荐网站,也不是代码生成器,也不是留言板/论坛。 –

回答

1

我发现this answer by Glavić和它完美的作品。

我调整了它你...

用法:回声time_elapsed_string( '2012-5-10',真);

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'; 
} 
相关问题