如何在PHP中将军事时间转换为整个时间?
如何像这样转换军事时间如何在PHP中将军事时间转换为整个时间?,php,time,Php,Time,如何像这样转换军事时间 07:03 --> 07:30 06:45 --> 07:00 07:36 --> 08:00 19:15 --> 19:30 18:35 --> 19:00 19:35 --> 20:00 基本上,如果时间间隔在30分钟内,你将把剩下的几分钟加起来,使之成为一个完整的时间 在我的数据库中,我必须像这样比较时间,其中: function check_range(
07:03 --> 07:30
06:45 --> 07:00
07:36 --> 08:00
19:15 --> 19:30
18:35 --> 19:00
19:35 --> 20:00
基本上,如果时间间隔在30分钟内,你将把剩下的几分钟加起来,使之成为一个完整的时间
在我的数据库中,我必须像这样比较时间,其中:
function check_range($get_shift, $date, $time, $id, $mode) {
$sql = "SELECT * FROM tbl_employee WHERE id = '$id'";
$result = mysql_query($sql);
$row_check_range = mysql_fetch_assoc($result);
$getShift = $row_check_range['shift'];
$sql2 = "SELECT * FROM tbl_shift WHERE shift = '$getShift'";
$result2 = mysql_query($sql2);
$row_check_range2 = mysql_fetch_assoc($result2);
$getTimeShift = $row_check_range2['timeIn'];
$actual_time_in_mode = explode(':', $time); //split time into (e.g 07, 11)
if ($mode == 'AM') {
$time_in_actual = $actual_time_in_mode[0];
} else {
$time_in_actual = $actual_time_in_mode[0];
$time_shift = explode(':', $getTimeShift);
$getTimeShift = $time_shift[0] + 12; //convert to military time
}
$getTimeShift = mktime($getTimeShift);
$actual_in_mode = mktime($time);
if ($actual_in_mode > $getTimeShift) // LATE
{
return $date.' '.$time_in_actual.':30:00';
} else {
$time_in_actual += 1;
return $date.' '.$time_in_actual.':00:00';
}
}
只需加30分钟,然后将数字向下四舍五入到最接近的
:30
或:00只需加30分钟,然后将数字向下四舍五入到最接近的:30
或:00类似的操作即可
list($hour, $minute) = explode(':', $time);
if ($minute > 30) {
$hour++;
$minute = 0;
} elseif ($minute > 0) {
$minute = 30;
}
if ($hour == 24) $hour = 0;
printf('%02d:%02d', $hour, $minute);
像这样的事情应该可以
list($hour, $minute) = explode(':', $time);
if ($minute > 30) {
$hour++;
$minute = 0;
} elseif ($minute > 0) {
$minute = 30;
}
if ($hour == 24) $hour = 0;
printf('%02d:%02d', $hour, $minute);
不,这将使1:20变成1:50,并四舍五入到2:00,而它应该是1:30。@ironcito-这是真的。加上30并四舍五入与四舍五入相同,这就是他试图做的;)我更喜欢罗布的回答。:)不,这将使1:20变成1:50,并四舍五入到2:00,而它应该是1:30。@ironcito-这是真的。加上30并四舍五入与四舍五入相同,这就是他试图做的;)我更喜欢罗布的回答。:)您可以将代码缩短一点<代码>$hour++代码>至$hour=($hour+1)%24
。然后,如果($hour==24)$hour=0,则删除代码>。您可以将代码缩短一点<代码>$hour++代码>至$hour=($hour+1)%24
。然后,如果($hour==24)$hour=0,则删除代码>。我不知道为什么人们会嫉妒,然后他们会因为答案未被选中而投反对票。我不知道为什么人们会嫉妒,然后他们会因为答案未被选中而投反对票。