Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取php中日期范围内的每周开始日期和结束日期_Php - Fatal编程技术网

获取php中日期范围内的每周开始日期和结束日期

获取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

如何在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-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会怎么样?