PHP获取中间时间间隔
我开发了一个函数,可以在用户生成的时间范围内获得相等的时间间隔PHP获取中间时间间隔,php,date,time,Php,Date,Time,我开发了一个函数,可以在用户生成的时间范围内获得相等的时间间隔 $start = strtotime("12:00"); //start at... $end = strtotime("18:00"); //end at... $timeframe = $end - $start; //time-frame $intervals = 3; //number of int
$start = strtotime("12:00"); //start at...
$end = strtotime("18:00"); //end at...
$timeframe = $end - $start; //time-frame
$intervals = 3; //number of intervals within time-frame
$interval_time = $timeframe/$intervals; //time of each interval
for($i = 0, $start;
$i < $intervals;
$i++, $start = strtotime("+$interval_time seconds", $start)) //increment time
{
$new_time = date('H:i:s a', $start);
echo "$new_time \n";
}
我可以合并什么代码来划分每个间隔并获得中间值?例如,从上面的代码中获取
13:00:00 pm 15:00:00 pm 17:00:00 pm
请告知:)将您的
for
循环替换为:
$half_interval = $interval_time / 2;
$mid = $start + $half_interval;
for ( $i = 1; $i < $intervals; $i ++) {
echo date('H:i:s a', $mid) . " \n";
$mid += $interval_time;
}
echo date('H:i:s a', $mid) . " \n";
$half_interval=$interval_time/2;
$mid=$start+$half_间隔;
对于($i=1;$i<$interval;$i++){
回显日期('H:i:SA',$mid)。“\n”;
$mid+=$interval\u时间;
}
回音日期('H:i:SA',$mid)。“\n”;
诚然,这是一个简单的方法。我相信改进是可能的,但留给读者作为练习!;-) 将
for
循环替换为:
$half_interval = $interval_time / 2;
$mid = $start + $half_interval;
for ( $i = 1; $i < $intervals; $i ++) {
echo date('H:i:s a', $mid) . " \n";
$mid += $interval_time;
}
echo date('H:i:s a', $mid) . " \n";
$half_interval=$interval_time/2;
$mid=$start+$half_间隔;
对于($i=1;$i<$interval;$i++){
回显日期('H:i:SA',$mid)。“\n”;
$mid+=$interval\u时间;
}
回音日期('H:i:SA',$mid)。“\n”;
诚然,这是一个简单的方法。我相信改进是可能的,但留给读者作为练习!;-) 尝试
$start+=$interval\u time/2代码>在第6行。顺便说一句,这是家庭作业吗?因为在我看来,如果你能写上面的代码,你也能修复这个…@钉子,谢谢!代码似乎有效。你说的家庭作业是什么意思?我刚刚接触增量运算符。@CyberJunkie如果输入是“开始12:00结束15:00”,你会有什么期望?@meze我得到12:30:00pm 13:30:00pm 14:30:00pm
使用新代码来查找中值。@CyberJunkie这取决于你需要什么。您可以将其替换为$start+=ceil($interval\u time/2/3600)*3600代码>但在下午13:00-14:00的时间范围内进行检查。尝试$start+=$interval\u time/2代码>在第6行。顺便说一句,这是家庭作业吗?因为在我看来,如果你能写上面的代码,你也能修复这个…@钉子,谢谢!代码似乎有效。你说的家庭作业是什么意思?我刚刚接触增量运算符。@CyberJunkie如果输入是“开始12:00结束15:00”,你会有什么期望?@meze我得到12:30:00pm 13:30:00pm 14:30:00pm
使用新代码来查找中值。@CyberJunkie这取决于你需要什么。您可以将其替换为$start+=ceil($interval\u time/2/3600)*3600代码>但在下午13:00-14:00的时间范围内进行检查。