我需要将15分钟添加到当前时间,直到当天的午夜。这应该以下面的格式显示
11:15am
11:30am
11:45am
并且它不会,
11:25am
11:40am
11:55am
我的代码是
$start =strtotime(date("d-m-Y h:i:s"));//strtotime('6:00am');
//echo $start;
//$end =strtotime('midnight');
$end = strtotime('12:00');//
$range = array();
while ($start <= $end)
{
echo date('h:ia',$start )."</br>";
$start = strtotime('+15 minutes',$start);
}
以上代码结果,
11:28am
11:43am
11:58am
问题1:
如何在今天午夜结束时间?
当我尝试strtotime('midnight')
时,它会返回空数据。
问题2:
如何将舍入时间显示为最接近的四分之一?
答案 0 :(得分:1)
您可以使用24:00
或'tomorrow midnight'
来获得下一个午夜。您的代码使用12:00
,即#34;此中午&#34;。
$min = round(date("i") / 15) * 15;
$start = strtotime(date("Y-m-d H:$min:00"));
$end = strtotime('24:00');
$range = array();
while ($start <= $end)
{
echo date('h:ia',$start )."</br>";
$start = strtotime('+15 minutes',$start);
}
输出:
08:15am
08:30am
...
11:30pm
11:45pm
12:00am
如果您不想包含&#34; 12:00 am&#34;,则可以将<=
更改为<
:
while ($start < $end)
答案 1 :(得分:0)
问题是您的代码必须完全11:00
启动才能使after 15 mins
成为11:15
。
您可以将开始时间设为11:00:00
以正确设置时间(demo):
$start =strtotime(date("h:00"));
$end = strtotime('12:00');
$range = array();
while ($start <= $end)
{
$range[] = date('h:ia',$start );
$start = strtotime('+15 minutes',$start);
}
var_dump($range);