我正在使用军事时间(0930,1000等)。我有一个开始时间和结束时间。我需要找到它们之间15分钟增量的数量,即0900到1115将是8个15块,1130到1430将是12个15块,等等。我怎么能用for循环呢?
答案 0 :(得分:4)
我会看strtotime
。
这不是一个愚蠢的问题吗?我的意思是,任何时候差异问题都可能涵盖这一点。
简单的事情就是:
<?php
$timeStart = '11:30';
$timeStop = '13:30';
$diff = strtotime($timeStart) - strtotime($timeStop);
echo ABS($diff / 60 / 15); // the total number of minutes between the the two times divided by 15.
不确定如何围绕商数。
答案 1 :(得分:0)
您可以使用此方法
我将时间转换为十进制值并减去。
然后乘以4,因为一小时内有四个quater。
$start = "09:30";
$end = "11:15";
list($hour, $min) = explode(":",$start);
$start = $hour + round($min/60,2);
list($hour, $min) = explode(":",$end);
$end = $hour + round($min/60,2);
echo ($end-$start)*4;
答案 2 :(得分:0)
我已尝试使用 for loop
来实现您的答案function militaryTime($startTime,$endTime,$interval=15)
{
$count = 0;
for($i=00;$i<=23;$i++)
{
for($j=00;$j<=59;$j++)
{
if(strtotime($i.":".$j)>strtotime($startTime) && strtotime($i.":".$j)<strtotime($endTime))
{
if($j%$interval==0)
{
//echo $i.":".$j."<br>";
$count++;
}
}
}
}
return $count;
}
$countOfMins = militaryTime("09:00","11:15"); //call the above declared function and get Value.