views:

455

answers:

3

I am coding an application where i need to assign random date between two fixed timestamps

how i can achieve this using php i've searched first but only found the answer for Java not php

for example :

$string = randomdate(1262055681,1262055681);
+3  A: 

PHP has the rand() function:

$int= rand(1262055681,1262055681);

It also has mt_rand(), which is generally purported to have better randomness in the results:

$int= mt_rand(1262055681,1262055681);

To turn a timestamp into a string, you can use date(), ie:

$string = date("Y-m-d H:i:s",$int);
zombat
To add to that, once your random number comes out, treat it as a new timestamp and construct a date from it.
Sudhir Jonathan
@Sudhir - definitely. @NetCaster - You can use the `date()` function to create a date string out of a timestamp very easily.
zombat
eg: date('Y-m-d', $int);
gahooa
+2  A: 

You can just use a random number to determine a random date. Get a random number between 0 and number of days between the dates. Then just add that number to the first date.

For example, to get a date a random numbers days between now and 30 days out.

echo date('Y-m-d', strtotime( '+'.mt_rand(0,30).' days'));
Brent Baisley
+3  A: 

Here's another example:

$datestart = strtotime('2009-12-10');//you can change it to your timestamp;
$dateend = strtotime('2009-12-31');//you can change it to your timestamp;

$daystep = 86400;

$datebetween = abs(($dateend - $datestart) / $daystep);

$randomday = rand(0, $datebetween);

echo "\$randomday: $randomday\n";

echo date("Y-m-d", $datestart + ($randomday * $daystep)) . "\n";
silent