试图找出实现以下方案的方法: -
用户创建初始时间段,例如2013年1月1日至2013年7月1日以及更新期限,例如每1个月一次。
我正在开发一个功能: -
例如: -
该功能可能接受以下日期21/02/2019。基于此,我需要检测用户所处的更新周期。
我想要实现这个目标的方式是: -
有点令人困惑,但这种总结了我所追求的但不起作用: -
$tmpStartDate=$endDate;
do{
$tmpStartDate=date("Ymd",strtotime($tmpStartDate .'+1 Day'));
$tmpEndDate=date("Ymd",strtotime($tmpStartDate .'+'.$timingUnitVal .' '.$timingUnit));
} while($date<$tmpStartDate&&$date>$tmpEndDate);
$ endDate是用户最初输入的结束日期。
答案 0 :(得分:1)
从我可以从你的问题中收集到的内容,大致沿着这些方向的内容会更正确吗?
function findPeriod($lowerBound, $upperBound, $repeatEvery, $date)
{
$lowerBound = strtotime($lowerBound);
$upperBound = strtotime($upperBound);
$repeatEvery = strtotime('+' . $repeatEvery) - time();
$date = strtotime($date);
while ($date >= $lowerBound) {
if ($date <= $upperBound) {
return array($lowerBound, $upperBound);
} else {
$lowerBound += $repeatEvery;
$upperBound += $repeatEvery;
}
}
return false;
}