Php kullanarak iki tarih arasında rasgele bir tarih oluşturmak

4 Cevap php

I iki sabit zaman damgaları arasındaki rasgele bir tarih atamak gerekir nerede bir uygulama kodlama am

ben bu kullanarak php elde edebilirsiniz nasıl önce arandı ancak sadece Java değil php için cevap bulundu

örneğin:

$string = randomdate(1262055681,1262055681);

4 Cevap

PHP rand() işlevi vardır:

$int= rand(1262055681,1262055681);

Ayrıca, genel olarak daha iyi bir sonuç için sözde rastgele sahip olduğu, mt_rand() var

$int= mt_rand(1262055681,1262055681);

Bir dizeye bir zaman damgası açmak için kullanabilirsiniz date(), yani:

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

Sadece rastgele bir tarih belirlemek için rastgele bir sayı kullanabilirsiniz. Tarih arasındaki gün 0 ve sayı arasında rastgele bir sayı olsun. Sonra sadece ilk tarih için bu numarayı ekleyin.

Örneğin, rastgele bir sayı gün şimdi ve 30 gün dışarı arasında bir tarih almak için.

echo date('Y-m-d', strtotime( '+'.mt_rand(0,30).' days'));

Verilen tarih tarih saat formatında ise o zaman, bunu yapmanın en kolay yolu bu kullanmak rasgele sayı üreteci üzerinde minimum ve maksimum sınırlar gibi ayarlayabilirsiniz, daha sonra damgaları hem sayıları dönüştürmektir.

Bir hızlı bir PHP örnek olacaktır:

// 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);
}

Bu fonksiyon, bir Unix zaman damgası içine bir datetime açıklama dönüştürmek zombat tarafından önerildiği gibi strtotime() kullanır, ve tarih () oluşturuldu rastgele damgası dışında geçerli bir tarih yapmak için.

İşte başka bir örnek:

$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";