как проверить, если пройденная метка времени находится в микро в php - PullRequest
0 голосов
/ 09 апреля 2019

Как проверить, что отметка времени, переданная приложению, указана в микро? Так что я могу разделить его на 1000. Я ищу решение в PHP.

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

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

Ответы [ 2 ]

0 голосов
/ 09 апреля 2019

Что ж, в настоящее время микро-временные метки используют не менее 40 бит для их набора битов, поэтому, если вы сдвинете биты вправо и получите любой результат, отличный от нуля, тогда ваша временная метка будет в микросекундах.См. Ниже ...

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

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

"Но этот код больше не будет работать, если стандартная метка времени достигнет 40-го бита?"

Да!Но в этом случае мы будем на отметке 1099511627776 (20.0236812 @ 12:36 (UTC)), поэтому я не думаю, что это будет проблемой =)

0 голосов
/ 09 апреля 2019

Использование микротайм

microtime - возврат текущей метки времени Unix с микросекундами

$microtime = microtime(true);

Вы не можете точно сказать, если данные из $ _POST в микротайме, пожалуйста, проверьте Qirel комментарии.

...