在登记时间字段之前和之前的10分钟的容忍度

时间:2016-10-26 16:41:35

标签: php mysql

我知道标题似乎真的令人困惑,但它是我能够接近我真正需要做的最接近......

让我试着解释一下,我的column表中有一个mySQL,其中小时(字符串)字段,注册日期访问代码

要重定向到所需的网页,他需要填写{{1>} 访问代码,当他填写并提交input时,整个form是:

select

如果存在访问代码,他选择的小时和日期,则会返回此信息。

我需要使用新的$sql = 'SELECT agendamentos.data_agendada, agendamentos.codigo_acesso, horarios.horario FROM agendamentos INNER JOIN horarios ON agendamentos.horario_id = horarios.id WHERE agendamentos.aluno_codigopessoa = '.$usrs->codigoPessoa.' AND agendamentos.codigo_acesso = '.$_POST['acesso_chat']; $statement = $db->prepare($sql); $statement->execute(); $result = $statement->fetchAll(); 对象与结果的小时进行比较,但是,如果结果的小时,我不能让他通过在 10分钟之前和之后10分钟他选择的那个期间。

我尝试了几个代码,我真的可以在DateTime()的对象上添加分钟,这就是我所做的,但是,我怎么做一个DateTime语句来查看是否小时他选择的是在当前时间前10分钟和当前时间后10分钟的期间

1 个答案:

答案 0 :(得分:2)

您可以通过PHPMySQL

执行此操作

PHP版本:

//given your result is something like this:
$result = array(
    'codigo_acesso' => 'ABCDE',
    'data_agendada' => '2016-10-26',
    'horario'       => '14:00:00'
);


$timestamp = strtotime($result['data_agendada'] . ' ' . $result['horario']);
$now       = mktime();
$diff      = $now - $timestamp;
$tolerance = 10 * 60; //10 minutes

if (abs($diff) <= $tolerance) {
    //grant access
} else {
    //deny access
}

MySQL版本:

$tolerance = 10 * 60; //10 minutes

$sql = "SELECT
            agendamentos.data_agendada,
            agendamentos.codigo_acesso,
            horarios.horario
        FROM
            agendamentos
        INNER JOIN horarios ON agendamentos.horario_id = horarios.id
        WHERE
            agendamentos.aluno_codigopessoa = :codigo_pessoa
            AND agendamentos.codigo_acesso = :acesso_chat
            AND ABS(TIMESTAMPDIFF(SECOND, NOW(), STR_TO_DATE(CONCAT(agendamentos.data_agendada, ' ', horarios.horario), '%Y-%m-%d %H:%i:%s'))) <= " . $tolerance; //

$statement = $db->prepare($sql);
$statement->execute(array(
    ':codigo_pessoa' => $usrs->codigoPessoa,
    ':acesso_chat'   => $_POST['acesso_chat']
));
$result = $statement->fetchAll();

if (!empty($result)) {
    //grant access
} else {
    //deny access
}

首选MySQL版本。

相关问题