以h:格式添加时间分钟:在PHP中给出意想不到的结果

时间:2017-11-04 16:08:21

标签: php strtotime

我有时间在我的数据库中,格式为12:30 PM 07:30 AM等。我需要格式 ['上午8:30','上午8点45分'] , [' 12:15 PM',' 12:30 PM'] ... 时间是UTC格式。我有一个功能,可以根据用户时区将其转换为本地时间。

function convertTimeToUSERzone($str, $userTimezone, $format = 'h:i A'){
if(empty($str)){
return '';
}
$new_str = new DateTime($str, new DateTimeZone('UTC') );
$new_str->setTimeZone(new DateTimeZone( $userTimezone ));
return $new_str->format( $format);
}

15分钟需要从DB添加到时间,例如下午12:15到下午12:30。我做了以下工作,结果出乎意料。

while($r = $stmt3->fetch())
{
$consult_time_UTC[] = $r['consult_time_utc'];
}
$consult_time_UTC = implode(',',$consult_time_UTC); 
$date = new DateTime($consult_time_UTC);
$date->add(new DateInterval("PT{15}M"));
$to = $date->format('h:i A'); //require format as ['8.30 AM', '8.45 AM'], ['12:15 PM', '12:30 PM']
//.....
}

我试图将15分钟添加到现有时间。如何在h中添加15分钟的时间:i每个数组元素的格式并以格式['8.30 AM', '8.45 AM'], ['12:15 PM', '12:30 PM']获取?困惑的新手。

1 个答案:

答案 0 :(得分:0)

我不确定,但无论如何你应该为每个数组项添加时间间隔。像这样的东西

while($r = $stmt3->fetch())
{
   $r['consult_time_utc'];
   $date = new DateTime($consult_time_UTC);
   $date->add(new DateInterval("PT15M"));
   $consult_time_UTC[] = $date->format('h:i A');
}
$consult_time_UTC = implode(',',$consult_time_UTC);