【问题标题】:How can I find a certain time interval in every day using PHP code如何使用 PHP 代码找到每天的某个时间间隔
【发布时间】:2019-09-21 13:59:37
【问题描述】:

在我的学生出勤项目中,每天上午 9.45 到 10.30 之间,老师应该标记学生的出勤情况。

因此,老师应该只能在那个时间标记他们的出勤率。应禁用其余时间的学生列表。

在这里,我遇到了一个问题,即服务器当前时间在每天上午 9.45 到 10.30 之间达到。

$now = time();  
$today = strtotime('9:50');
//do not know how to find current date with time interval 9.45am and 10.30am
if (($today - $now) > 0) {
    $status = "disabled";
} else {
    $status = "active";
}

请帮我找到解决方案。

【问题讨论】:

    标签: php mysql


    【解决方案1】:
    $current_time = date('h:i:s a'); //now
    $start = "9:50 am";
    $finish = "10:30 am";
    $date1 = DateTime::createFromFormat('H:i a', $current_time);
    $date2 = DateTime::createFromFormat('H:i a', $start);
    $date3 = DateTime::createFromFormat('H:i a', $finish);
    if ($date1 > $date2 && $date1 < $date3)
    {
        $status = "active";
    } else {
        $status = "disabled";
    }
    

    要在不等待正确时间的情况下进行测试,您可以像这样设置$current_time

    $current_time = "10:31 am";
    

    我希望它不言自明,但如果您有任何问题,请提出。和\或查看dateTime

    【讨论】:

    • 使用 Carbon 处理日期和时间比 DateTime 类更好,
    • 我不同意;但随时使用碳@AdityaThakur 发布答案
    • 先生,它不起作用,当我回显 $date1、$date2、$date3 时没有显示任何内容。
    • 你不回应他们,没有必要。 $status 是您正在使用的值
    • 它使用服务器时间,如果服务器时间不是您想要的,您可以更改时区
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-20
    • 2016-04-06
    • 1970-01-01
    • 2016-01-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多