永发信息网

PHP 产生随机时间

答案:5  悬赏:0  手机版
解决时间 2021-11-20 00:10
  • 提问者网友:疯子也有疯子的情调
  • 2021-11-19 10:24
PHP 产生随机时间
最佳答案
  • 五星知识达人网友:夜风逐马
  • 2021-11-19 11:44
PHP 中的 strtotime() 与 mt_rand() 函数可以实现

相关函数说明:

strtotime() 函数将任何英文文本的日期时间描述解析为 Unix 时间戳。
mt_rand() 使用 Mersenne Twister 算法返回随机整数。

实现两个时间中随机时间的基本原理是:
先把两个时间解析为时间戳(相当于一个整数),然后用随机函数随机这两个整数,得到中间的时间戳,然后还原为时间。

例如:
//先定义一个可以生成随机时间的函数
function rand_time($start_time,$end_time){

$start_time = strtotime($start_time);
$end_time = strtotime($end_time);
echo date('Y-m-d H:i:s', mt_rand($start_time,$end_time));
}

$start_time = '2015-01-01 00:00:00';
$end_time = '2015-06-01 00:00:00';
//调用函数
rand_time($start_time,$end_time);
?>
全部回答
  • 1楼网友:一秋
  • 2021-11-19 16:36
function rand_time($a,$b)
{
$a=strtotime($a);
$b=strtotime($b);
return mt_rand($a,$b);
}
$date1="2010-05-10 20:03:01";
$date2="2010-05-11 20:21:32";
$num = 10;
$i=0;
while ($i < $num){
$date[] = rand_time($date1,$date2);
$i++;
}
asort($date);
foreach($date as $r){
$date1=date( "Y-m-d H:m:s", $r);
echo "$date1
";
}
?>
  • 2楼网友:不甚了了
  • 2021-11-19 15:20
用格林威治时间 也就是time() 整型的时间 在两个整数之间求随机数
  • 3楼网友:孤独的牧羊人
  • 2021-11-19 14:08
后面的时间能比前面的时间早?是比较晚吧。不是很明白。不知道把while循环中$date1 = $date改成$date2 = $date是不是你要的效果
  • 4楼网友:雾月
  • 2021-11-19 13:24
function rand_time($a,$b)
{
$a=strtotime($a);
$b=strtotime($b);
return date( "Y-m-d H:m:s", mt_rand($a,$b));
}
$date1="2010-05-10 20:03:01";
$date2="2010-05-11 20:21:32";
$num = 10;
$i=0;
while ($i < $num){
$date = rand_time($date1,$date2);
$datea[]= $date;
$i++;
}
sort($datea);

foreach ($datea as $values)
{

echo $values."
";

}
?>
你可以这样处理一下,就好了~O(∩_∩)O~
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯