我有一个PHP脚本可以插入学生的出席情况。我想插入出勤状态,如果时间()在凌晨5点到7点半之间那么我的compareTime函数应返回P或Present,如果time()在7:31之间,则返回然后8:30 那么函数应该返回L或Late。通过这种时间比较,我似乎无法获得正确的回报值。我非常需要帮助。
这是我的代码:
function compareTime($time,$grade){
if ($grade == "H1" || $grade == "H2" || $grade == "H3" || $grade == "H4" || $grade == "S1" || $grade == "S2") {
if ($time > strtotime('07:30:00') && $time < strtotime('8:30:00')){
return "L";
} else if ($time > strtotime('05:00:00') && $time <= strtotime('7:30:00')){
return "P";
}
} else {
if ($time > strtotime('07:15:00') && $time < strtotime('8:30:00')){
return "L";
} else if ($time > strtotime('05:00:00') && $time <= strtotime('7:30:00')){
return "P";
}
}
插入代码:
function recordAttendance($conn, $sid, $glid, $scid){
$sql = mysqli_query($conn, "INSERT INTO tbl_attendance(student_id, gradeLevel_id, section_id, date, arrival_time, status) VALUES ('".$sid."', '".$glid."', '".$scid."', CURDATE(), CURTIME(), '".compareTime(time(),$glid)."')")or die(mysqli_error());
更新:我已将其解决了。函数没有返回确切值的原因是因为没有设置时区。因此,每当我得到约会时(&#39; Y-m-d H:i:s&#39;),它都与我的机器的日期和时间不符。通过添加 date_default_timezone_set(&#39;亚洲/新加坡&#39;); 解决了我的问题。谢谢所有帮助过的人!
答案 0 :(得分:0)
对于所有strtotime添加日期也
strtotime('2017-08-14 07:30:00')
答案 1 :(得分:0)
而不是strtotime('05:00:00')
使用strtotime('today')+86400*5;
(今天00:00的时间戳+5小时)