获取php中日期范围内的每周开始日期和结束日期
如何在PHP中获得一个日期范围内的整个星期的开始日期和结束日期 周开始=周日,周结束=周六 输入 $start_date='2013-02-01'获取php中日期范围内的每周开始日期和结束日期,php,Php,如何在PHP中获得一个日期范围内的整个星期的开始日期和结束日期 周开始=周日,周结束=周六 输入 $start_date='2013-02-01' $end_date='2013-02-28' 输出 开始日期='2013-02-01'结束日期='2013-02-02' 开始日期='2013-02-03'结束日期='2013-02-09' 开始日期='2013-02-10'结束日期='2013-02-16' 开始日期='2013-02-17'结束日期='2013-02-23' 开始日期='2013
$end_date='2013-02-28' 输出 开始日期='2013-02-01'结束日期='2013-02-02'
开始日期='2013-02-03'结束日期='2013-02-09'
开始日期='2013-02-10'结束日期='2013-02-16'
开始日期='2013-02-17'结束日期='2013-02-23'
开始日期='2013-02-24'结束日期='2013-02-28' 下面的代码返回给定日期的开始和结束时间
function getWeekDates($date)
{
$week = date('W', strtotime($date));
$year = date('Y', strtotime($date));
$from = date("Y-m-d", strtotime("{$year}-W{$week}-1")); //Returns the date of monday in week
$to = date("Y-m-d", strtotime("{$year}-W{$week}-7")); //Returns the date of sunday in week
echo "Start Date-->".$from."End Date -->".$to;//Output : Start Date-->2012-09-03 End Date-->2012-09-09
}
我怎样才能得到上面的结果?我希望我能正确回答你的问题 你需要做的是用开始日期调用你的函数,然后在开始日期加上七天,然后再次调用你的函数。。。你必须这样做,直到你到达结束日期 以下是一些未经测试的代码:
$current_date = strtotime($start_date);
$end_date_as_date = strtotime($end_date);
while($current_date < $end_date_as_date){
getWeekDates($current_date);
$current_date= strtotime("+7 day", $current_date);
}
$current\u date=strottime($start\u date);
$end\u date\u as\u date=strottime($end\u date);
while($current_date<$end_date_as_date){
获取工作日($current_date);
$current\u date=strottime(“+7天,$current\u date”);
}
希望这有帮助。如果您需要更多信息,请留言。我希望我能正确回答您的问题 你需要做的是用开始日期调用你的函数,然后在开始日期加上七天,然后再次调用你的函数。。。你必须这样做,直到你到达结束日期 以下是一些未经测试的代码:
$current_date = strtotime($start_date);
$end_date_as_date = strtotime($end_date);
while($current_date < $end_date_as_date){
getWeekDates($current_date);
$current_date= strtotime("+7 day", $current_date);
}
$current\u date=strottime($start\u date);
$end\u date\u as\u date=strottime($end\u date);
while($current_date<$end_date_as_date){
获取工作日($current_date);
$current\u date=strottime(“+7天,$current\u date”);
}
希望这有帮助。如果您需要更多信息,请留言。我的答案
$start_date = '2013-02-01';
$end_date = '2013-02-28';
getWeekDates($start_date, $end_date);
function getWeekDates($date, $enddate) {
$week = date('W', strtotime($date));
$year = date('Y', strtotime($date));
$from = date("Y-m-d", strtotime("{$year}-W{$week}-1")); //Returns the date of monday in week
$to = date("Y-m-d", strtotime("{$year}-W{$week}-7")); //Returns the date of sunday in week
$Edate = strtotime($enddate);
$Sdate = strtotime($to);
if ($Edate <= $Sdate) {
echo "<br>Start Date-->" . $from . "End Date -->" . $enddate; //Output : Start Date-->2012-09-03 End Date-->2012-09-09
} else {
echo "<br>Start Date-->" . $from . "End Date -->" . $to; //Output : Start Date-->2012-09-03 End Date-->2012-09-09
$to = date("Y-m-d", strtotime("$to +1days")); //Returns the date of monday in week
getWeekDates($to, $enddate);
}
}
$start_date='2013-02-01';
$end_date='2013-02-28';
获取工作日($start\u date,$end\u date);
函数getWeekDates($date,$enddate){
$week=日期('W',标准时间($date));
$year=日期('Y',标准时间($date));
$from=date(“Y-m-d”,strotime({$year}-W{$week}-1”);//返回星期一的日期
$to=date(“Y-m-d”,strotime({$year}-W{$week}-7”);//返回星期天的日期
$Edate=strottime($enddate);
$Sdate=strottime($to);
如果($Edate 2012-09-03)结束日期-->2012-09-09
}否则{
echo“
开始日期-->”$from。“结束日期-->”$to;//输出:开始日期-->2012-09-03结束日期-->2012-09-09
$to=date(“Y-m-d”,strotime($to+1days”);//返回星期一的日期
获取工作日($to$enddate);
}
}
我的答案
$start_date = '2013-02-01';
$end_date = '2013-02-28';
getWeekDates($start_date, $end_date);
function getWeekDates($date, $enddate) {
$week = date('W', strtotime($date));
$year = date('Y', strtotime($date));
$from = date("Y-m-d", strtotime("{$year}-W{$week}-1")); //Returns the date of monday in week
$to = date("Y-m-d", strtotime("{$year}-W{$week}-7")); //Returns the date of sunday in week
$Edate = strtotime($enddate);
$Sdate = strtotime($to);
if ($Edate <= $Sdate) {
echo "<br>Start Date-->" . $from . "End Date -->" . $enddate; //Output : Start Date-->2012-09-03 End Date-->2012-09-09
} else {
echo "<br>Start Date-->" . $from . "End Date -->" . $to; //Output : Start Date-->2012-09-03 End Date-->2012-09-09
$to = date("Y-m-d", strtotime("$to +1days")); //Returns the date of monday in week
getWeekDates($to, $enddate);
}
}
$start_date='2013-02-01';
$end_date='2013-02-28';
获取工作日($start\u date,$end\u date);
函数getWeekDates($date,$enddate){
$week=日期('W',标准时间($date));
$year=日期('Y',标准时间($date));
$from=date(“Y-m-d”,strotime({$year}-W{$week}-1”);//返回星期一的日期
$to=date(“Y-m-d”,strotime({$year}-W{$week}-7”);//返回星期天的日期
$Edate=strottime($enddate);
$Sdate=strottime($to);
如果($Edate 2012-09-03)结束日期-->2012-09-09
}否则{
echo“
开始日期-->”$from。“结束日期-->”$to;//输出:开始日期-->2012-09-03结束日期-->2012-09-09
$to=date(“Y-m-d”,strotime($to+1days”);//返回星期一的日期
获取工作日($to$enddate);
}
}
试试这个
$start_date = date('Y-m-d', strtotime('2013-02-01'));
$end_date = date('Y-m-d', strtotime('2013-02-28'));
$end_date1 = date('Y-m-d', strtotime('2013-02-28 + 6 days'));
for($date = $start_date; $date <= $end_date1; $date = date('Y-m-d', strtotime($date. ' + 7 days')))
{
echo getWeekDates($date, $start_date, $end_date);
echo "\n";
}
function getWeekDates($date, $start_date, $end_date)
{
$week = date('W', strtotime($date));
$year = date('Y', strtotime($date));
$from = date("Y-m-d", strtotime("{$year}-W{$week}+1")); //Returns the date of monday in week
if($from < $start_date) $from = $start_date;
$to = date("Y-m-d", strtotime("{$year}-W{$week}-6")); //Returns the date of sunday in week
if($to > $end_date) $to = $end_date;
echo "Start Date-->".$from."End Date -->".$to;//Output : Start Date-->2012-09-03 End Date-->2012-09-09
}
$start_date=日期('Y-m-d',标准时间('2013-02-01');
$end_date=日期('Y-m-d',标准时间('2013-02-28');
$end_date1=日期('Y-m-d',标准时间('2013-02-28+6天');
对于($date=$start\u date;$date$end\u date)$to=$end\u date;
回显“开始日期-->”$from。“结束日期-->”$to;//输出:开始日期-->2012-09-03结束日期-->2012-09-09
}
请参见试试这个
$start_date = date('Y-m-d', strtotime('2013-02-01'));
$end_date = date('Y-m-d', strtotime('2013-02-28'));
$end_date1 = date('Y-m-d', strtotime('2013-02-28 + 6 days'));
for($date = $start_date; $date <= $end_date1; $date = date('Y-m-d', strtotime($date. ' + 7 days')))
{
echo getWeekDates($date, $start_date, $end_date);
echo "\n";
}
function getWeekDates($date, $start_date, $end_date)
{
$week = date('W', strtotime($date));
$year = date('Y', strtotime($date));
$from = date("Y-m-d", strtotime("{$year}-W{$week}+1")); //Returns the date of monday in week
if($from < $start_date) $from = $start_date;
$to = date("Y-m-d", strtotime("{$year}-W{$week}-6")); //Returns the date of sunday in week
if($to > $end_date) $to = $end_date;
echo "Start Date-->".$from."End Date -->".$to;//Output : Start Date-->2012-09-03 End Date-->2012-09-09
}
$start_date=日期('Y-m-d',标准时间('2013-02-01');
$end_date=日期('Y-m-d',标准时间('2013-02-28');
$end_date1=日期('Y-m-d',标准时间('2013-02-28+6天');
对于($date=$start\u date;$date$end\u date)$to=$end\u date;
回显“开始日期-->”$from。“结束日期-->”$to;//输出:开始日期-->2012-09-03结束日期-->2012-09-09
}
请参见如果我将开始日期设置为2013-05-01,将结束日期设置为2013-05-31会怎么样?如果我将开始日期设置为2013-05-01,将结束日期设置为2013-05-31会怎么样?