в составляющих, то же самоеgetrandmax()
промежуточные проверки геморойные получаются.а чем мешает рандомить 3 числа в указанном периоде, складывать и проверять на корректность
У меня получился период больше 68 лет.в чем? в секундах?
А если речь именно о датах, то генерировать можно смещение в днях
$date1 + 60*60*24 * rand(0, (int) (($date2-$date1)/(60*60*24)) )
static public function randUINT($min=0,$max=0xFFFFFFFF){
if ( $min < 0 || $min > 0xFFFFFFFF
|| $max < 0 || $max > 0xFFFFFFFF
|| $min > $max )
{
return null;
}
$min -= 0x80000000;
$max -= 0x80000000;
$randval = mt_rand($min,$max);
return $randval + 0x80000000;
}
$start = mktime(0,0,0,2006,1,1);
$end = time();
$randomStamp = rand($start,$end);
echo date('Y-m-d',$randomStamp);
<?
echo getrandmax();
echo "<br />";
echo time();
?>
(c) http://www.php.net/manual/en/function.rand.phpNote:
On some platforms (such as Windows) RAND_MAX is only 32768. If you require a range larger than 32768, specifying min and max will allow you to create a range larger than RAND_MAX, or consider using mt_rand() instead.
...под виндовсами можно получить ещё вот...
whirlwindWarning: mktime(): Windows does not support negative values for this function in...
Отчего же? Развепромежуточные проверки геморойные