我想创建一个功能,在2-3周内从另一个时间戳创建周一至周六之间的随机时间戳。
function randomdate3weeks($timestamp){
$add3weeks = strtotime('-21 day', $timestamp);
$finaldate = mt_rand($add3weeks, $timestamp);
return $finaldate;
}
如果在星期天登陆,我将如何添加+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时,循环停止。