首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TimeAgo -一年和几个月前

TimeAgo -一年和几个月前
EN

Stack Overflow用户
提问于 2014-03-05 23:44:23
回答 1查看 117关注 0票数 0

我的统一时间是1336608000

也就是2012-5-10。

一年前10个月前的今天- 2014-03-06

现在我要做的是,按现在的情况,在一年前和几个月前完成产出。所以我想展示:

1 year 10 months ago.

我在这里看到的大多数timeAgo函数在堆栈溢出和整个互联网上都显示时间前是“2年前”,这是错误的。我尝试过像8-10 php函数那样显示确切的月计数。

所以我的问题是,是否有一个php时间前函数显示确切的年份和月份计数,而不是舍入它?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-05 23:51:41

我找到了this answer by Glavić,它工作得很好。

我帮你调整了一下..。

用法:echo time_elapsed_string('2012-5-10',true);

代码语言:javascript
复制
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';
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22211867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档