用时间PHP获取数组的总和

时间:2014-07-17 22:21:40

标签: php arrays string

如何获得此数组的总和,我试图在没有运气的情况下搜索此数据。

array(1) { [0]=> string(4) "7.14" } 0<br>
array(1) { [0]=> string(3) "5.0" } 0<br>
array(1) { [0]=> string(5) "15.26" } 0<br>
array(1) { [0]=> string(5) "15.32" } 0<br>
array(1) { [0]=> string(5) "15.33" } 0<br>
array(1) { [0]=> string(5) "15.34" } 0<br>
array(1) { [0]=> string(3) "1.0" } 0<br>
array(1) { [0]=> string(3) "0.0" } 0<br>
array(1) { [0]=> string(3) "0.2" } 0<br>


重要的是要知道数组的值是time格式。因此当2个值类似于15.34 + 15.33 = 30.67 = 30.60 + 0.07时,总和将为31.07

代码背后:

    $query = "SELECT * FROM timer WHERE id = '10'";
    $result = mysql_query($query);
    while ($row = mysql_fetch_array($result)) {
       $inn = date("H:i", strtotime($row['inn']));
       $ut = date("H:i", strtotime($row['ut']));

    $from = new DateTime($inn);
    $to = new DateTime($ut);
    $timer = $from->diff($to)->format('%h.%i');

    $a = var_dump(explode(" ", $timer));
    $test = array($a);
    echo array_sum($test) . "<br>";
    };

我是一个真正的菜鸟,所以请帮助:)

1 个答案:

答案 0 :(得分:0)

要获得总间隔,您可以将每个间隔转换为秒并按Dagon建议添加它们,或者使用变量来跟踪开始时间和结束时间,然后找出差异:

$query = "SELECT * FROM timer WHERE id = '10'";
$result = mysql_query($query);
$start = new Datetime();
$end = clone $start;
while ($row = mysql_fetch_array($result)) {
    $inn = date("H:i", strtotime($row['inn']));
    $ut = date("H:i", strtotime($row['ut']));

    $from = new DateTime($inn);
    $to = new DateTime($ut);
    $interval = $from->diff($to);
    $end->add($interval);
    $timer = $interval->format('%h.%i');

    $a = var_dump(explode(" ", $timer));
    $test = array($a);
    echo array_sum($test) . "<br>";
};

$sum_interval = $start->diff($end);