【PHP】1時間ごとに変わる乱数を作る

初めは乱数をキャッシュしておこうかなと思ったのですが、キャッシュは面倒なので違う路線で・・・。

<?php
$now = new DateTime( "now" , new DateTimeZone('Asia/Tokyo'));
$time = strtotime($now->format('Y-m-d H:00:00')); //一時間毎

srand($time);

$str ="";
foreach(range(0,9) as $i){
     $str = $str.rand(0,10);
}
echo $str;

PHP: srand - Manual

やり方は簡単で、srandのシード値(seed)が同じだと、同じ乱数が生成されます。ということで1時間この値を同じ値にすれば、1時間たつと変わる乱数が作れます。

3行目をみると分かるように、現在の時間を取得して、分と秒は0に置き換えてます。

参考:
数分おきに一度変わる乱数がほしい - それマグで!
array_rand関数の結果を日付ごとに一意に固定する - Qiita

スポンサーリンク

コメントを残す

メールアドレスは公開されません。
また、コメント欄には、必ず日本語を含めてください(スパム対策)。