针对当前

时间:2016-12-03 06:42:49

标签: php mysql sql

我试着在下面尝试验证临时密码在mySQL数据库中保存的时间。

<?php
$conn = mysqli_connect("localhost", "root", "", "Sales");
$q = "SELECT TB_TOKENTEMP FROM TBUSER WHERE TB_FNAME='mango'";
$qu = mysqli_query($conn, $q);

while($row=mysqli_fetch_array($qu, MYSQL_ASSOC))
{
    date_default_timezone_set('Asia/Colombo');
    $DBTime = $row['TB_TOKENTEMP'];
    $DBtimeconverted = strtotime($DBTime);
    $Curtime = time();
    $newtime = $Curtime-$DBtimeconverted;
    if(($Curtime-$DBtimeconverted) > 1800) //1800 seconds (half and hour)
    {     
        echo "Half an hour gone and your password is expired. <br>";
        echo "Here's the time since the password is generated : " . round($newtime/3600)." Hour(s) ".($newtime/60)." Minutes ".($newtime%60)." seconds<br>";
    }
        else 
    {
        echo "Password token still valid.";
    }

}
$conn->close();
?>

代码按原样运行,但我正在努力解决两件事;

1。一旦所需的时间过去,我得到的输出就像这样。

  

半小时后,您的密码已过期   这是密码生成以来的时间:0小时0.66666666666667分40秒

随着时间的推移,它看起来像这样。

  

半小时过去了,密码已过期这是自那以后的时间   密码生成:0小时13.5分30秒

点这里是我看到小数点添加到我想要删除的分钟计算中。 (我不确定什么时候过去,小时也会发生同样的情况)

2。第二个问题是,现在我已将默认时区设置为亚洲/科伦坡,验证就会发生。如果用户位于不同的时区,则此验证可能不会成立。有没有一种方法可以推广date_default_timezone_set(),以便根据用户特定的时区进行验证?

  1. 我有更好的方法可以用SQL处理同样的事情吗?

0 个答案:

没有答案