簡體   English   中英

PHP使用今天的日期生成一個隨機數

[英]PHP generate a random number using todays date

我正在嘗試分配一個內容塊(在網頁上)一個隨機生成的數字,該數字基於今天的日期(無論將是什么)和固定數字。 由於某種原因,輸出的數字種類存在顯着差異。 例如,當我在本地測試我的代碼時,生成的數字對我來說足夠好(正面)但是在實際的實時服務器上它們通常是相反的並且是負數。

這是我的一個班輪:

<?php $today=date('YmdHi'); echo rand(201203140906, $today); ?>

基本上'201203140906'是年,月,日,小時。

這是好事還是壞事? 有沒有更好的方法來做到這一點?

在32位系統上,INT中可以保存的最大值是2147483647。

http://php.net/manual/en/language.types.integer.php

如果本地計算機是64位且服務器是32位,則它們將具有不同的大小限制。 服務器將無法處理與201203140906一樣大的整數。

您可以隨機生成較小的數字,然后將其添加到201203140906。

也許這樣:

$today = date('YmdHi');
$startDate = date('YmdHi', strtotime('2012-03-14 09:06:00'));
$range = $today - $startDate;
$rand = rand(0, $range);
echo "$rand and " . ($startDate + $rand);

或者您可以這樣做以在過去十天內生成隨機日期:

$today = date('YmdHi');
$startDate = date('YmdHi', strtotime('-10 days'));
$range = $today - $startDate;
$rand = rand(0, $range);
echo "$rand and " . ($startDate + $rand);
<?php 
$then = strtotime('2012-03-14 09:06:00'); 
$now = time();
for($i=0; $i<100; $i++) echo date('YmdHi', rand($then, $now)), '<br>'; 
?>

順便說一下......你也可以使用“uniqid()”

鑒於您在評論中的解釋,您可以使用shuffle()函數解決您的問題。 您可以有兩個數組,一個是日期列表,另一個是您希望隨機傳播的數據,然后只需從混洗數據中讀取。 由於沒有代碼示例,我會將詳細信息留給您。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM