我以24小时格式保存此09 : 00-12 : 31
或15 : 00-17 : 00
的时间范围。我这次爆炸这样:
$time = array();
$time = explode('-',$data['tele_timings']);$starttime='';
$starttime = $time[0];
$endtime = $time[1];
$data['tele_timings']
是我从数据库中选择的时间。它的格式是我上面提到的。我尝试了很多方法但没有创建时间范围的下拉列表。我尝试过的一种方法是:
$time_start = $starttime;
$time_end = $endtime;
$timestamp_start = strtotime(date('d-m-Y').' '.$time_start);
$timestamp_end = strtotime(date('d-m-Y').' '.$time_end);
$options_array = '';
while($timestamp_start <= $timestamp_end){
$options_array.='<option value="">'.date('H:i', $timestamp_start).'</option>';
$timestamp_start = $timestamp_start+900; //Adds 15 minutes
}
echo $options_array;
答案 0 :(得分:3)
你的逻辑是正确的。但实际问题是,当你将字符串分解为开始和结束时间时,例如09:00-12:31
star_time = 09:00 end_time = 12:31存储。
这不是您以正确方式进行所需的中间结果。 所以你需要删除它们之间的所有空格。为此目的,使用str_replace()函数..Accroding到你的代码使用:
$ starttime = str_replace(&#39;&#39;,&#39;&#39;,$ time [0]); $ endtime = str_replace(&#39;&#39;,&#39;&#39;,$ time [1]); 然后继续使用相同的逻辑。 祝你一切顺利:)