【发布时间】:2019-07-15 14:32:46
【问题描述】:
我有以下生成随机日期的函数:
function createARandomDateBetweenRange(Carbon $start, Carbon $stop, int $weekDay=null) : Carbon
{
$randDate = random_int($start->getTimestamp(), $stop->getTimestamp());
$radomDate = Carbon::createFromTimestamp($randDate);
return $radomDate
}
但由于某种原因,我需要能够从提供的工作日中随机选择一个星期一、星期二等(0 是星期日,6 是星期六)
所以我把定义改成了:
use Carbon\Carbon;
public static function createARandomDateBetweenRange(Carbon $start, Carbon $stop, ?int $weekDay=null) : Carbon
{
$randDate = random_int($start->getTimestamp(), $stop->getTimestamp());
$radomDate = Carbon::createFromTimestamp($randDate);
if($weekDay!=null && $weeekDay >= Carbon::SUNDAY && $weekDay <= Carbon::SATURDAY)
{
// Modify the date in order to get the correct date here
}
return $radomDate;
}
那么我如何从指定的日期范围和随机日期时间中获取正确的日期作为我作为参数提供的特定工作日?
例如当我调用函数时:
use Carbon\Carbon;
$now = Carbon::now()
$fiveMonthsLater= new Carbon($now);
$fiveMonthsLater->modify("+5 months");
$randomTuesday=createARandomDateBetweenRange($now,$fiveMonthsLater,Carbon::TUESDAY);
$randomSaturday=createARandomDateBetweenRange($now,$fiveMonthsLater,Carbon::SATURDAY);
echo $randomTuesday->isoFormat("dddd"); //Outputs Tuesday
echo $randomSaturday->isoFormat("dddd"); //Outputs Saturdat
【问题讨论】:
-
我有点不清楚你想要什么......
-
获取所有星期一的时间。从下方随机获取 - stackoverflow.com/questions/7061802/…
-
@splash58 我需要能够spacify 任何工作日来做到这一点。我不想只是重复星期一,
-
选择你想要的日子