【发布时间】:2017-11-04 16:08:21
【问题描述】:
我有时间在我的数据库中,格式为 12:30 PM 07:30 AM 等。我需要格式为 ['8.30 AM', '8.45 AM'], ['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 PM 到 12:30 PM。我做了以下事情,结果出乎意料。
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:i 格式将 15 分钟时间添加到每个数组元素并以格式 ['8.30 AM', '8.45 AM'], ['12:15 PM', '12:30 PM'] 获取?困惑的新手。
【问题讨论】:
-
DateInterval("PT15M")) -
@splash58 未捕获的异常:DateTime::__construct():无法在位置 6 (P) 解析时间字符串(12:30 PM,07:30 AM):在数据库
-
为什么要把 DateTime 设置为两个时间值?
-
@splash58 我的时间选择器设置为 15 分钟的增量,它需要采用 ['8.30 AM', '8.45 AM'], ['12:15 PM', '12: 30 PM'] 用于检测已选择的日期。