挺有意思:PHP 將N秒內連續的記錄視為一條記錄

php_yt發表於2021-12-04

現在時間是11:34:00秒,我向系統傳送了一條 “hello,”,
02秒 – “i”
03秒 – “am”
04秒 – “php_yt”

當傳送 “hello” 時,系統儲存了一條記錄
sendtime:1638589060,text:hello,
5秒內系統視為一條記錄,即
sendtime:1638589060,text:hello, i am php_yt

通過下面的可實現

$now = time();
$now2 = intval( $now /5 ) * 5;

測試程式碼

echo $now = time();//1638589533
echo PHP_EOL;
echo $now / 5; //327717906.6
echo PHP_EOL;
echo $custom_time = intval( $now /5 ) * 5;//1638589530

假如 hello, 這條記錄的時間是 1638589530 , 那麼目前時間戳 1638589533 也視為和 hello,相同的時間

當然也可以調整 5 秒為 10 秒,原理就是

echo $now / 5; //327717906.6 每秒小數點向前 0.2,取整忽略掉

10 秒的話,小數點向前 0.1,取整忽略掉。

不過上面的有 bug,可將一段時間內的傳送時間都轉為 custom_time 合併,具體應用場景不詳,權當娛樂

本作品採用《CC 協議》,轉載必須註明作者和本文連結
focus

相關文章