Php,加上和减去时间戳,得到分钟

时间:2018-02-22 10:19:44

标签: php datetime timestamp

我需要从以下几个时间戳中获得不同的时间长度:

  • 开始时间
  • 结束时间
  • starttime2nd
  • endtime2nd

修改:澄清: 每次最初都存储为日期时间字符串,如

"2018-02-21T19:45:13+00:00"

我接受并将其转换为strtotime("2018-02-21T19:45:13+00:00");

然后我得到一个时间戳:1519242313

我似乎无法使用加号或减号运算符来添加或减去时间戳,例如:

$ length =($ endtime2nd - $ starttime2nd)+($ endtime - $ starttime)

我是否需要实例化 DateTime 并使用" ->diff"获取时间间隔的方法?

我可以通过这样做得到一个时间间隔:

$date1 = new DateTime();
$date2 = new DateTime();

$starttime= $date1->setTimestamp($starttime);
$endtime= $date2->setTimestamp($endtime);

$length = $endtime->diff($starttime);

这是否意味着我需要实例化四个 DateTimes以获得总长度,并设置四个时间戳,然后获得" ->diff"对于两个时间间隔,然后使用" ->add"添加它们。 DateTime方法的方法?

我想知道是否有更简单的方法?

2 个答案:

答案 0 :(得分:1)

我认为您不需要实例化DateTime并使用“ - > diff”方法,因为您已经有时间戳(因为我可以看到您正在使用setTimestamp

<?php
    $length = ($endtime2nd - $starttime2nd) + ($endtime - $starttime);

    echo round(abs($length / 60), 2). " minute";
?>

答案 1 :(得分:0)

你可以得到像这样的总分钟。

[% testList1 = [0,1,2,3,4,5] %]
[% testList2 = [6,7,8,9,10,] %]

[% doSomething = '' %]
[% FOREACH item IN testList1.merge(testList2) %]
  [% doSomething = doSomething _ 'useful ' _ item %]
[% END %]
[% doSomething %]