繁体   English   中英

YYYY-MM-DD HH-MM-SS转换为…个月/天/分钟/小时/秒

[英]Convert YYYY-MM-DD HH-MM-SS to … months/days/minutes/hours/seconds ago

该问题基于另一个StackOverFlow 问题 ,该问题题为PHP中的timestamp转换为time ago,例如1天前,2天前…

被打勾的答案无法解释,但显示此功能:

function time_elapsed_string($ptime)
{
    $etime = time() - $ptime;

    if ($etime < 1)
    {
        return '0 seconds';
    }

    $a = array( 365 * 24 * 60 * 60  =>  'year',
                 30 * 24 * 60 * 60  =>  'month',
                      24 * 60 * 60  =>  'day',
                           60 * 60  =>  'hour',
                                60  =>  'minute',
                                 1  =>  'second'
                );
    $a_plural = array( 'year'   => 'years',
                       'month'  => 'months',
                       'day'    => 'days',
                       'hour'   => 'hours',
                       'minute' => 'minutes',
                       'second' => 'seconds'
                );

    foreach ($a as $secs => $str)
    {
        $d = $etime / $secs;
        if ($d >= 1)
        {
            $r = round($d);
            return $r . ' ' . ($r > 1 ? $a_plural[$str] : $str) . ' ago';
        }
    }
}

我使用的时间格式是YYYY-MM-DD HH-MM-SS ,例如: 2015-01-21 19:23:09

我的尝试:

echo $target_time = time_elapsed_string(strtotime("2015-01-21 19:23:09"));

它给:

45年前。

任何时候都会给45岁。 我不知道该功能的工作原理,但是可以提供任何帮助。

使用PHP的DateTimeDateDiff对象可以轻松完成此操作

$datetime1 = new DateTime();
$datetime2 = new DateTime("2015-01-21 19:23:09");
$interval = $datetime1->diff($datetime2);
echo $interval->format('%R%a days');

有关要传递的格式字符串的完整说明,请参阅文档

我从http://timeago.yarp.com找到了一个简单有效的解决方案:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="http://timeago.yarp.com/jquery.timeago.js"></script>
<script>
jQuery(document).ready(function() {
  jQuery("abbr.timeago").timeago();
});
</script>

<abbr class="timeago" title="2015-01-21T21:30:00"></abbr>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM