我在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>
但我只有最后的结果
<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
在一个变量?
答案 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');