目前,我的数据如下。但是,它不是时间戳值。这是一个时间本身
$start_time = '150630';
$end_time = '180630';
我想更改{i}尝试的格式
03:06 PM – 06:06 PM
但格式和价值并不像预期的那样。 请帮我解决这个问题
答案 0 :(得分:2)
您不需要时间转换器,因为您的字符串不是有效的时间戳。相反,这是时间本身。您只需要提取hour
,min
和second
。
请参阅下文
<?php
$start_time = "150630";
$hours = substr($start_time, 0, 2); // this is actual hours
$mins = substr($start_time, 2, 2); // this is actual minutes
$secs = substr($start_time, 4, 2); // this is actual seconds
if ($hours < 12) {
$actTime = "$hours:$mins:$secs AM";
} else {
$actTime = ($hours-12).":$mins:$secs PM";
}
echo $actTime; // this is the time format you want
答案 1 :(得分:2)
您可以使用str_split
功能,因为您的时间格式不是时间戳。
它会提取hours
,minutes
和seconds
。
检查以下代码:
<?php
$start_time = '150630';
$end_time = '180630';
$startTimeA = str_split($start_time, 2);
$endTimeA = str_split($end_time, 2);
$startTime = "";
$AmOrPm = "AM";
if ($startTimeA[0] > 12) {
$startTime .= (int) ($startTimeA[0] - 12);
$AmOrPm = "PM";
}
echo $startTime .= ":" . $startTimeA[1] . " " . $AmOrPm;
$endTime = "";
$AmOrPm = "AM";
if ($endTimeA[0] > 12) {
$endTime .= (int) ($endTimeA[0] - 12);
$AmOrPm = "PM";
}
echo $endTime .= ":" . $endTimeA[1] . " " . $AmOrPm;
?>
答案 2 :(得分:-1)