我试着在下面尝试验证临时密码在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()
,以便根据用户特定的时区进行验证?