Home Articles

如果时间在两个给定时间内,则返回一个值

Asked
Viewed 1658 times
0

我有一个PHP脚本,可以插入学生的出席情况 . 我想插入出勤状态, if the time() is between 5AM to 7:30AM 然后我的compareTime函数应返回P或Present和 if time() is between 7:31 and 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());

UPDATE: 我已经修好了 . 函数没有返回确切值的原因是因为没有设置时区 . 因此,每当我收到日期('Y-m-d H:i:s')时,它都与我的机器的日期和时间不符 . 通过添加 date_default_timezone_set('Asia/Singapore'); 解决了我的问题 . 谢谢大家的帮助!

2 Answers

  • 0

    对于所有strtotime添加日期也

    strtotime('2017-08-14 07:30:00')
    
  • 0

    而不是 strtotime('05:00:00') 使用 strtotime('today')+86400*5; (今天00:00的时间戳为5小时)

Related