PHP使用todays date生成一个随机数

PHP使用todays date生成一个随机数,php,date,random,time,Php,Date,Random,Time,我正在尝试为一块内容(在网页上)分配一个随机生成的数字,该数字基于今天的日期(无论是什么日期)和一个固定的数字。出于某种原因,输出的数字种类存在着巨大的差异。例如,当我在本地测试代码时,生成的数字对我来说已经足够好了(正数),但在实际的实时服务器上,它们通常是相反的负数 这是我的一句话: <?php $today=date('YmdHi'); echo rand(201203140906, $today); ?> 基本上,“201203140906”是年、月、日、小时 这是好还

我正在尝试为一块内容(在网页上)分配一个随机生成的数字,该数字基于今天的日期(无论是什么日期)和一个固定的数字。出于某种原因,输出的数字种类存在着巨大的差异。例如,当我在本地测试代码时,生成的数字对我来说已经足够好了(正数),但在实际的实时服务器上,它们通常是相反的负数

这是我的一句话:

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

基本上,“201203140906”是年、月、日、小时


这是好还是坏?有更好的方法吗?

在32位系统上,整数中可以保存的最大值是2147483647

如果您的本地计算机是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);

在32位系统上,INT中可以保存的最大值为2147483647

如果您的本地计算机是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);

顺便说一下。。。您也可以使用“uniqid()”




顺便说一下。。。您也可以使用“uniqid()”

根据注释中的解释,您可能可以解决函数的问题。您可以有两个数组,一个是日期列表,另一个是您希望随机传播的数据,然后简单地从无序数据中读取。由于没有代码示例,我将把详细信息留给您。

在注释中给出您的解释,您可能可以解决函数的问题。您可以有两个数组,一个是日期列表,另一个是您希望随机传播的数据,然后简单地从无序数据中读取。由于没有代码示例,我将把详细信息留给您。

您可以使用时间戳吗?不要使用
rand()
,而是使用
mt\u rand()
。您还可以运行
mt\u getrandmax()
查看
mt\u rand()
中的最大值。我还想问你为什么要这么做?在一个日期和一个固定数字(我能理解的日期)之间找到一个值似乎很奇怪。你是否试图在随机数生成器中添加日期种子,以便内容每天都随机化?我不太擅长PHP,你看,上面的一半没有多大意义:(我只是想确保页面上的一块内容在其他按日期顺序排列的块中随机排列。这就是原因。您可以使用时间戳吗?不要使用
rand()
,而是使用
mt\u rand()
。您还可以运行
mt\u getrandmax()
查看
mt\u rand()中的最大值。)
。我还想问你为什么要这样做?在一个日期和一个我能理解的固定数字之间找到一个值似乎很奇怪。你是否试图在随机数生成器中植入日期,以便内容每天随机化?我对PHP不太在行,你看,上面的一半没有多大意义:(我只是想确保页面上的一块内容在其他按日期排序的块中随机排序。这就是原因。我该怎么做呢?我对PHP不太在行,希望能得到一些帮助……我很乐意提供帮助。如果回答正确,记得点击c将其标记为已接受。)很好。这种方法唯一的问题是,随着时间的推移,内容块会显示在页面下方,因为我的固定日期/数字与实际日期之间的差异会增大。这不是一个理想的解决方案。谢谢。那么你就不需要“一个基于今天日期和固定数字之间的随机生成的数字”?这就是您在问题中要求的。我添加了代码以获取过去十天内的随机日期。如果您的内容从最新订购到最旧,则插入的内容应保持在顶部附近。显然,您可以更改“10”无论多少天都是合适的。我该怎么做呢?我对PHP不太在行,希望能得到一些帮助…我很乐意提供帮助。如果这个答案是正确的,记得点击复选标记将其标记为接受。我唯一的问题是,随着时间的推移,内容块将显示在下方t他翻页是因为我的固定日期/数字与实际日期之间的差异会增大。这不是一个理想的解决方案。谢谢。那么你就不会想要“一个基于今天日期和固定数字之间的随机生成的数字”?这就是您在问题中要求的。我添加了代码以获取过去十天内的随机日期。如果您的内容从最新订购到最旧,则插入的内容应保持在顶部附近。显然,您可以更改“10”但有一个问题是,它只输出一个不同数字的完整列表,例如“20120514021
201203151132
…等等”。我如何修改它,使其只输出一个随机数字?很好,谢谢。但有一个问题是,它只输出一个不同数字的完整列表ent数字,例如“20120514021
201203151132
…等”,我如何修改它,使其只输出一个随机数?