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(( 函数解决您的问题。你可以有两个数组,一个是日期列表,另一个是您希望随机传播的数据,然后简单地从打乱的数据中读取。由于没有代码示例,我将把细节留给你。