0

我正在重置密码,我正在检查令牌是否在时间范围内。

这是我的代码:

            $tokentime = substr($dbtoken[0], 0, 4); // get the DB time that I store with date('hi') . $token
            $now = date('hi'); // Create the now time in same format as $tokentime

            var_dump($now); // This generates : 0838 (couple mines ago) 
            var_dump($tokentime); this generates : 0652 (102 minutes ago)
            var_dump(strtotime($now)); // convert 8380 to unix time
            var_dump(strtotime($tokentime)); // convert 0652 into unix time

            if (strtotime($now) - strtotime($tokentime) >= 600) { // If the unix seconds are equal to or greater then 600 seconds 
                echo "Token Expired";
            } else {
                echo "Not Expiered";
            }

我的思维方式正确吗?

这是 var_dump 值:

string(4) "0838" string(4) "0652" int(1377175080) int(1377168720) 令牌过期

我将其设置为在 10 分钟 600 秒内到期。

这是我第一次检查时间差异,并像这样将日期值存储在令牌中。我只是想知道这是否是找到时间差异的正确方法。

4

1 回答 1

0

这很简单:在您的令牌中 time() 的某个时间值。之后:

if (time()-tokentime) > 600)
{
    // expired
}

time() 将为您提供与时区无关的所谓 UNIX 时间戳。

于 2013-09-27T12:47:42.937 回答