Codeigniter timespan无法正常工作

时间:2017-11-17 02:54:00

标签: codeigniter

我的代码如下:

$post_date = '2017-11-15 21:04:31';
$now = new DateTime();
$units = 7;
echo timespan($post_date, $now, $units);

它让我回答:

  问了47年,10个月,2个星期,1天,23个小时,53分钟

来自哪里47年?

更新

我想计算自$ post_date以来的活跃时间之间的差异。例如$post_date = '2017-11-15 21:04:31';它应该是自发布以来的1天,8小时,9分钟。

我该如何解决?

2 个答案:

答案 0 :(得分:2)

您可以使用diff

<强>代码

$post_date= new DateTime("2017-11-15 21:04:31"); 
$now = new DateTime(); 
$diff = $now->diff($post_date); 
echo "Days: " . $diff->days . " Hours: " . $diff->h . " Minutes: " . $diff->i;

<强>输出:

Days: 1 Hours: 8 Minutes: 39

适用于print_r结果

echo"<pre>";
print_r($diff);

DateInterval Object
(
    [y] => 0
    [m] => 0
    [d] => 1
    [h] => 8
    [i] => 39
    [s] => 22
    [weekday] => 0
    [weekday_behavior] => 0
    [first_last_day_of] => 0
    [invert] => 1
    [days] => 1
    [special_type] => 0
    [special_amount] => 0
    [have_weekday_relative] => 0
    [have_special_relative] => 0
)

答案 1 :(得分:1)

Epoctime时间从1970年1月1日午夜开始,所以你的函数从该日期起返回时间跨度。

自1970年以来已过去47年。

澄清你想要达到的目标,以便我们能够提供更好的帮助。