How to create a list of random dates in PHP

1 Answer

0 votes
<?php

// Generate a random date between two years using DateTime
function random_date(int $startYear, int $endYear): DateTime {

    // Convert start and end years to timestamps
    $start = new DateTime("$startYear-01-01");
    $end   = new DateTime("$endYear-12-31");

    // Uniform distribution over the timestamp range
    $startTs = $start->getTimestamp();
    $endTs   = $end->getTimestamp();

    $randomTs = rand($startTs, $endTs);

    // Convert back to DateTime
    $result = new DateTime();
    $result->setTimestamp($randomTs);

    return $result;
}

$dates = [];

for ($i = 0; $i < 10; $i++) {
    $dates[] = random_date(1990, 2030);
}

foreach ($dates as $d) {
    echo $d->format("Y-n-j") . "\n";
}


/*
run:

1994-5-31
2009-3-17
1997-3-12
2000-6-3
2002-6-16
2016-10-30
1998-1-9
2023-8-12
1994-11-22
1995-5-30

*/

 



answered 3 hours ago by avibootz
...