Php 每5分钟从00:00到23:55创建阵列时间列表

Php 每5分钟从00:00到23:55创建阵列时间列表,php,datetime,time,Php,Datetime,Time,我想创建一个数组,包含从00:00到23:55的所有5分钟时间 在这个论坛上,我发现: $minutes = 5; $endtime = new DateTime('2012-01-01 09:00'); //modified the start value to get something _before_ the endtime: $time = new DateTime('2012-01-01 00:00'); $interval = new DateInterval('PT' . $m

我想创建一个数组,包含从00:00到23:55的所有5分钟时间

在这个论坛上,我发现:

$minutes = 5;
$endtime = new DateTime('2012-01-01 09:00');

//modified the start value to get something _before_ the endtime:
$time = new DateTime('2012-01-01 00:00');
$interval = new DateInterval('PT' . $minutes . 'M');

while($time < $endtime){
    $time->add($interval);
echo $time->format('Y-m-d H:i');
}
$minutes=5;
$endtime=新日期时间('2012-01-01 09:00');
//修改了开始值以在结束时间之前获取内容:
$time=新日期时间('2012-01-01 00:00');
$interval=新的日期间隔('PT'.$minutes.M');
而($time<$endtime){
$time->add($interval);
echo$time->format('Y-m-dh:i');
}
我该如何改变这一点,以便输出可以与json一起使用

例如:-

$aArray={“00:00”:“00:00”,“00:05”:“00:05”,“23:55”:“23:55”}

我的问题不是创建json,而是创建一个没有日期部分的小时/分钟列表

试试看:

echo json_encode($Var);

这应该能奏效。。在此处查看手册:

日期时间::格式的参数控制如下字段的选择:

$times = array();
for ($h = 0; $h < 24; $h++){
  for ($m = 0; $m < 60 ; $m += 5){
    $time = sprintf('%02d:%02d', $h, $m);
    $times["'$time'"] = "'$time'";
  }
 }
$startTime  = new \DateTime('2010-01-01 00:00');
$endTime    = new \DateTime('2010-01-01 23:55');
$timeStep   = 5;
$timeArray  = array();

while($startTime <= $endTime)
{
    $timeArray[] = $startTime->format('H:i');
    $startTime->add(new \DateInterval('PT'.$timeStep.'M'));
}

echo json_encode($timeArray);
  • Y:一年
  • m:一个月
  • d:白天
  • 小时
  • i:分钟
要仅获取小时和分钟,请使用
'H:i'
作为格式字符串

有关更多格式选项:请参见

如果不能使用DateTime函数,我会生成如下数组:

$times = array();
for ($h = 0; $h < 24; $h++){
  for ($m = 0; $m < 60 ; $m += 5){
    $time = sprintf('%02d:%02d', $h, $m);
    $times["'$time'"] = "'$time'";
  }
 }
$startTime  = new \DateTime('2010-01-01 00:00');
$endTime    = new \DateTime('2010-01-01 23:55');
$timeStep   = 5;
$timeArray  = array();

while($startTime <= $endTime)
{
    $timeArray[] = $startTime->format('H:i');
    $startTime->add(new \DateInterval('PT'.$timeStep.'M'));
}

echo json_encode($timeArray);
$times=array();
对于($h=0;$h<24;$h++){
对于($m=0;$m<60;$m+=5){
$time=sprintf('%02d:%02d',$h,$m);
$times[“$time'”]=“$time'”;
}
}

你是最棒的,只有小特威克和特耶建议使用H:i。也许是这样的:

$times = array();
for ($h = 0; $h < 24; $h++){
  for ($m = 0; $m < 60 ; $m += 5){
    $time = sprintf('%02d:%02d', $h, $m);
    $times["'$time'"] = "'$time'";
  }
 }
$startTime  = new \DateTime('2010-01-01 00:00');
$endTime    = new \DateTime('2010-01-01 23:55');
$timeStep   = 5;
$timeArray  = array();

while($startTime <= $endTime)
{
    $timeArray[] = $startTime->format('H:i');
    $startTime->add(new \DateInterval('PT'.$timeStep.'M'));
}

echo json_encode($timeArray);
$startTime=new\DateTime('2010-01-01 00:00');
$endTime=new\DateTime('2010-01-01 23:55');
$timeStep=5;
$timeArray=array();
while($startTime格式('H:i');
$startTime->add(new\DateInterval('PT'.$timeStep.M');
}
echo json_编码($timeArray);

必须先更新我的php版本才能使用这些DateTime类:( 所以现在我只是写出来,用15分钟的时间间隔,比如:

function json_select_starttijd_ronde()
{
$jsonStarttijd_ronde = array();

$jsonStarttijd_ronde['00:00'] = '00:00';
$jsonStarttijd_ronde['00:15'] = '00:15';
    // etcetera

$jsonStarttijd_ronde['23:45'] = '23:45';

return $jsonStarttijd_ronde;

}

我编辑了我的问题,因为创建json本身不是我的问题。如果我不够清楚,很抱歉。那么我会使用一对嵌套循环来生成数组内容。请参阅我更新的答案。