如何使用php在两个日期之间生成随机日期?

2022-08-30 08:59:47

我正在编写一个应用程序,我需要在两个固定时间戳之间分配随机日期

我如何使用php实现这一点,我首先搜索过,但只找到了Java而不是php的答案

例如:

$string = randomdate(1262055681,1262055681);

答案 1

PHP 具有 rand() 函数:

$int= rand(1262055681,1262055681);

它还具有mt_rand(),通常声称其在结果中具有更好的随机性:

$int= mt_rand(1262055681,1262055681);

要将时间戳转换为字符串,可以使用 date(),即:

$string = date("Y-m-d H:i:s",$int);

答案 2

如果给定的日期是日期时间格式,那么使用最简单的方法是将两个数字转换为时间戳,然后将其设置为随机数生成器上的最小和最大边界。

一个简单的 PHP 示例是:

// Find a randomDate between $start_date and $end_date
function randomDate($start_date, $end_date)
{
    // Convert to timetamps
    $min = strtotime($start_date);
    $max = strtotime($end_date);

    // Generate random number using above bounds
    $val = rand($min, $max);

    // Convert back to desired date format
    return date('Y-m-d H:i:s', $val);
}

此函数按照 zombat 的建议使用 strtotime() 将日期时间描述转换为 Unix 时间戳,并使用 date() 从生成的随机时间戳中生成有效日期。


推荐