PHP:从unix_timestamp创建一个随机日期

时间:2014-07-14 17:39:04

标签: php function unix-timestamp

我想创建一个功能,在2-3周内从另一个时间戳创建周一至周六之间的随机时间戳。

function randomdate3weeks($timestamp){

     $add3weeks = strtotime('-21 day', $timestamp);

     $finaldate = mt_rand($add3weeks, $timestamp);

return $finaldate;
}

如果在星期天登陆,我将如何添加+1或-1天?

1 个答案:

答案 0 :(得分:0)

您可以使用以下内容:

$from = 1405361280;
$from = DateTime::createFromFormat('U', $from);

$to = clone $from;
$to->modify('+3 weeks');

do {
  $random = rand($from->getTimestamp(), $to->getTimestamp());
  $random = DateTime::createFromFormat('U', $random);
} while (!$random->format('w'));

echo $random->getTimestamp();

在此代码中,$from是原始时间戳,$to是该时间戳的3周。然后do..while循环在这两个循环之间生成随机时间戳,并在随机时间戳不是星期日时停止。

使用DateTime::format()检查生成的时间是否为星期日。 w格式字符在星期日返回0,其他日期返回1-6。因此,当$random->format('w')的结果大于0时,循环停止。