如何检查传递的时间戳是否在php中

时间:2019-04-09 11:13:24

标签: php timestamp

如何检查传递给应用程序的时间戳是否在微范围内?这样我就可以将其除以1000。我正在寻找PHP中的解决方案。

$timestamp = 1554780109;
$_POST['time'] = 1554373624995;

(($timestamp - $_POST['time']) <= 60)

2 个答案:

答案 0 :(得分:0)

使用microtime

microtime-返回当前的Unix时间戳(以微秒为单位)

$microtime = microtime(true);

您无法真正确定$ _POST中的数据是否在微时间,请检查Qirel注释。

答案 1 :(得分:0)

好吧,目前微时间戳至少使用40位作为它们的位集,因此,如果将这些位右移并得到任何不同于零的结果,则时间戳以微秒为单位。见下面...

function checkMicroTS($timestamp): bool {
    return $timestamp >> 40;
}

var_dump(checkMicroTS(1554808523));    // false
var_dump(checkMicroTS(1554808523480)); // true

“但是,如果常规时间戳记到达第40位,此代码将不再起作用?”

是的!但是,在这种情况下,我们的商标为1099511627776(02/20/36812 @ 12:36 am(UTC)),所以我认为这不会成为问题=)