我想添加并平均花费几个小时。
$cadena = '00:09:00,00:09:00,00:09:00,00:09:00,00:09:00';
$arr = explode(",",$cadena);
$total = strtotime('00:00:00');
for($i = 0; $i<count($arr);$i++)
{
$total = $total + strtotime($arr[$i]);
}
$total = $total / count($arr);
echo date('H:i:s',$total);
这将返回 05:45:00,而我预计是 00:09:00。是什么错误:(
你可以这样做:
当你调用 strtotime 而不传递日期时,它假定当前日期,并且今天加九分钟的时间戳与 T=0 加九分钟的时间戳不同。
特别是,时间戳 0 发生在 1969 年 12 月 31 日晚上 9:00,因此在任何 strtotime 中都隐含三个小时的偏移量。这会产生如此奇怪的后果
打印
在您的情况下,您将总计初始化为非零值,因此对该总和进行平均变得毫无意义。
Iván Botero 的解决方案解决了您的问题,因为它明确地将总数初始化为零,并且在循环的每次迭代中,它都会删除当前日期和宇宙初始时间戳之间的时间增量。
如果你想在这里添加是这个我希望它有帮助