生成Randomy出生日期

J.R*_*Rob 7 php

这是我的代码:

$curr_year = date('Y');
$dob_year  = rand($curr_year-18,$curr_year-47);
$dob_month = rand(01,12);
$dob_day   = rand(01,30);

echo $dob = $dob_month.'/'.$dob_day.'/'.$dob_year;
Run Code Online (Sandbox Code Playgroud)

我得到的结果是1/2/1988,但我的要求是结果应该是01/02/1988

Mar*_*c B 7

怎么样:

$min = strtotime("47 years ago")
$max = strtotime("18 years ago");

$rand_time = mt_rand($min, $max);

$birth_date = date('%m/%d/%Y', $rand_time);
Run Code Online (Sandbox Code Playgroud)

基本上:生成一些表示允许日期范围的unix时间戳,然后使用这些时间戳作为随机数生成器的最小/最大范围.你会得到一个恰好可用作unix时间戳的int,然后你可以将其输入到date()你想要的格式中.

这具有额外的好处/副作用,允许您获得随机出生时间,而不仅仅是日期.


Pra*_*man 2

使用str_pad

echo $dob = str_pad($dob_month, 2, '0', STR_PAD_LEFT) . '/' . str_pad($dob_day, 2, '0', STR_PAD_LEFT) . '/'.$dob_year;
Run Code Online (Sandbox Code Playgroud)