2016-04-04 131 views
1

我怎么能给予只是目前的数据,如何通过提供开始日期获得下一个10日星期日?

继获得未来10日是我的代码,但它是日期范围,我只是想给的开始日期,并从起始日期未来10日(无结束日期)之间。

$allweeks=array(); 
    $startDate = date('Y-m-d'); 
    $date = new DateTime($startDate); 
    $interval = new DateInterval('P2M'); 
    $date->add($interval); 
    $endDate=$date->format('Y-m-d'); 
    for ($i = strtotime($startDate); $i <= strtotime($endDate); $i = strtotime('+1 day', $i)) { 

     if (date('N', $i) == 1) 
     $allweeks[]= date('n-j', $i); 

    } 
    foreach($allweeks as $wks) 
    { 
     $weeks=explode('-', $wks); 
     echo '=Week of '.$weeks[0]."/".$weeks[1]; 

    } 

回答

0

你可以使用DateTime类或strtotime功能相同:

对下面的代码来看看:

使用DateTime

$date = '2016-04-05'; 
$date = new DateTime($date); 

// Modify the date it contains 
for($i =0; $i < 10; $i++){ 
$date->modify('next sunday'); 

// Output 
echo $date->format('l : Y-m-d'); 
echo '<br />'; 
} 

使用strtotime功能

$date = '2016-04-05'; 
// Modify the date it contains 
for($i =0; $i < 10; $i++){ 
    $date = date('Y-m-d', strtotime('next sunday', strtotime($date))); 

    echo date('l : Y-m-d', strtotime($date)); 
    echo '<br />'; 
} 

输出

Sunday : 2016-04-10 
Sunday : 2016-04-17 
Sunday : 2016-04-24 
Sunday : 2016-05-01 
Sunday : 2016-05-08 
Sunday : 2016-05-15 
Sunday : 2016-05-22 
Sunday : 2016-05-29 
Sunday : 2016-06-05 
Sunday : 2016-06-12 
+0

您的输出是不正确的; 2016-04-05之后的第一个星期天是2016-04-10。 – Narf

+0

是的,我知道代码正常工作...你刚刚复制了错误的结果。 – Narf

+0

感谢这工作对我 –

相关问题