Php 在连续循环的开始日期和结束日期之间获取$date
试图找出实现以下场景的方法:- 用户创建初始时间段(如2013年1月1日至2013年7月1日)和续订时间段(如每1个月) 我正在开发一个函数,该函数将:-Php 在连续循环的开始日期和结束日期之间获取$date,php,loops,while-loop,Php,Loops,While Loop,试图找出实现以下场景的方法:- 用户创建初始时间段(如2013年1月1日至2013年7月1日)和续订时间段(如每1个月) 我正在开发一个函数,该函数将:- 检测函数中传递的日期(可以是任何日期)是否落在与用户需求匹配的时间段内 例如:- 职能部门可接受以下日期:2019年2月21日。基于此,我需要检测用户处于哪个续订期 我想实现这一目标的方法是:- 向用户的初始开始日期添加一天,以获取最新的续订日期 将续订期(1个月)添加到此中以获取最新的结束日期 继续这样做,直到我根据用户续订期限类型(例如1
$tmpStartDate=$endDate;
do{
$tmpStartDate=date("Ymd",strtotime($tmpStartDate .'+1 Day'));
$tmpEndDate=date("Ymd",strtotime($tmpStartDate .'+'.$timingUnitVal .' '.$timingUnit));
} while($date<$tmpStartDate&&$date>$tmpEndDate);
$tmpstardate=$endDate;
做{
$tmpStartDate=日期(“Ymd”,标准时间($tmpStartDate.+1天”);
$tmpEndDate=date(“Ymd”,strotime($tmpStartDate.'+.$timingUnitVal.'.$timingUnit));
}而($date$tmpEndDate);
$endDate是用户最初输入的结束日期。根据我从您的问题中收集到的信息,大致按照以下几点比较正确
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;
}
函数findPeriod($lowerBound,$upperBound,$repeatEvery,$date)
{
$lowerBound=strotime($lowerBound);
$upperBound=strottime($upperBound);
$repeatEvery=strtotime('+.$repeatEvery)-time();
$date=strottime($date);
而($date>=$lowerBound){
如果($date)这看起来像PHP;如果是的话,你可能想给它贴上标签。我认为所写的场景有点混乱,需求也不清楚。我想也许你可以让逻辑更清晰一些(例如,你可以用一两句话来解释)解决方案会自动出现。听起来这个方法需要使用三个输入值,而不仅仅是一个,也许你需要澄清一下(听起来你在使用strotime()比较方面走的方向是正确的,只是这个问题需要重新编写)。