从datetime开始的总和时间

时间:2015-04-17 09:46:20

标签: php arrays

我在sql中有一个表,类型是datetime y m d h i s 和我在PHP中使用mid来获得单独的时间和这样的日期 mid(tablename,1,10)只能像'y m d'一样获取日期 和使用 mid(tablename,12,8)只能获得'H:i:s'这样的时间 这是代码解释我做了什么

<html> 
<head> 
<title>ss</title> 
</head> 
<body> 
    <form method='post' action='<?php $_SERVER['SELF'];?>'> 
        <input type='submit' name='submit' /> 
    </form> 
    <? 
        include("config"); 
        $submit = $_POST['submit']; 
        $getdata1= mysql_query("select checktime from calls"); 
        if(isset($submit)) 
        { 
            while($getdata= mysql_fetch_array($getdata1)) 
            { 
                echo "<input type='text' name='text' value='mid($getdata[1],12,8)'";
        } 
    }  
?> 
</body> 
</html>

现在我得到了这样的结果

08:00:00
08:10:00
07:00:51

等等 我需要将结果总结为

date("d H:i:s",strtotime(all result from fetch array))

所以我试过这个


<html> 
<head> 
<title>ss</title> 
</head> 
<body> 
    <form method='post' action='<?php $_SERVER['SELF'];?>'> 
        <input type='submit' name='submit' /> 
    </form> 
    <? 
        include("config"); 
        $submit = $_POST['submit']; 
        $getdata1= mysql_query("select checktime from calls"); 
        if(isset($submit)) 
        {  
            while($getdata= mysql_fetch_array($getdata1)) 
            { 
                echo "<input type='text' name='text' value='mid($getdata[1],12,8)'";
                for($i=0;$i<5;$i++)
                {
                    $i+= strtotime($getdata[0]);
                }
            } 
        echo $i;
    } 
?> 
</body> 
</html>

但我只有最后的结果

所以我试着在像这样的

的SQL查询中这样做
<html> 
<head> 
<title>ss</title> 
</head> 
<body> 
    <form method='post' action='<?php $_SERVER['SELF'];?>'> 
        <input type='submit' name='submit' /> 
    </form> 
    <? 
    include("config"); 
    $submit = $_POST['submit']; 
    $getdata1= mysql_query("select unix_timestamp(mid(checktime,12,8)) from calls"); 
    if(isset($submit)) 
    { 
        while($getdata= mysql_fetch_array($getdata1)) 
        { 
            echo "<input type='text' name='text' value='mid($getdata[1],12,8)'";
            for($i=0;$i<5;$i++)
            {
                $i+= $getdata[0];
            }
        } 
        echo $i;
    } 
?> 
</body> 
</html>

并且我得到的结果不是来自1970-1-1,但是我从mid(checktime,1,10)得到了,所以我想要的是总结出来的结果如下: H:i:s 从整个获取。

我的意思是,如何将结果总结为: 08:00:00 08:10:00 07:00:51 在一个变量?

1 个答案:

答案 0 :(得分:1)

如果我对你的问题了解得很清楚,这里有一个小例子,你可以根据需要总结和格式化时间。

$times = ['15:00:00', '08:10:00', '07:00:51'];

$date = new \DateTime;
$alteredDate = new \DateTime;

foreach ($times as $time) {
    $parts = explode(':', $time);
    $alteredDate->add(new \DateInterval(sprintf('PT%dH%dM%dS', $parts[0], $parts[1], $parts[2])));
}

echo $alteredDate->diff($date)->format('%a %h:%i:%s');