我在获得平均时间计算问题。如何获得平均时间
我有这个总结通话时间06:03:05,我想获得平均175电话。
date_default_timezone_set('America/Chicago');
$ts = strtotime("06:03:05");
echo date("H:i:s", $ts/175);
我得到: 12点26分25秒
我甚至不知道为什么我想出这个庞大无比的平均时间。我做对了吗?请帮忙。
我在获得平均时间计算问题。如何获得平均时间
我有这个总结通话时间06:03:05,我想获得平均175电话。
date_default_timezone_set('America/Chicago');
$ts = strtotime("06:03:05");
echo date("H:i:s", $ts/175);
我得到: 12点26分25秒
我甚至不知道为什么我想出这个庞大无比的平均时间。我做对了吗?请帮忙。
问题在于您的strtotime
调用(没有日期组件)默认为当前日期。所以$ts
是一个很多很多大于只是时间部分的总和;它还包括日期部分。
我会避免使用这样的时间函数。根据小时,分钟和秒计算秒数很简单。一旦你有了,你可以使用date()
来回复格式化的时间,就像你在那里一样。
尝试更多的东西是这样的:
function getTimeAverage($hours, $minutes, $seconds, $division) {
$seconds += ($hours * 3600) + ($minutes * 60);
return $seconds/$division;
}
$average = getTimeAverage(6, 3, 5, 175);
echo gmdate("H:i:s", $average);
它必须是'gmdate('H:i:s',$ average);'。但这只能工作24小时。 – bitWorking
好点,谢谢你。我编辑了答案。 - 我住在格林尼治标准时间,所以我倾向于忘记这些时区问题:) – Atli
哦..我现在得到它..感谢一个全家伙... Atli和redreggae –
一个简单的方法只工作长达24小时。否则采取Atlis的方法,并寻找一种方法将秒数转换为日期。
$time = '06:03:05';
$seconds = strtotime("1970-01-01 $time UTC");
$average = $seconds/175;
echo gmdate('H:i:s', $average);
感谢分享:) –
您不能像整数一样使用'$ ts'来计算'$ ts/175'。 – tranisstor