我有兩個日期我想在每個月的第二個星期天之間提到兩個日期。如何在PHP代碼中做到這一點?如何讓每個月的第二個星期天在兩個日期之間?
下面我提到的兩個日期。
$start_date = '2016-08-24';
$end_date = '2017-09-24';
謝謝
我有兩個日期我想在每個月的第二個星期天之間提到兩個日期。如何在PHP代碼中做到這一點?如何讓每個月的第二個星期天在兩個日期之間?
下面我提到的兩個日期。
$start_date = '2016-08-24';
$end_date = '2017-09-24';
謝謝
您可以使用relative formats您可以用DateTime class使用,就像這樣:
$start_date = new DateTime('2016-08-24');
$end_date = new DateTime('2017-09-24');
$dt = clone $start_date;
$dt->modify('last day of previous month')->modify('+2 Sundays');
while ($dt <= $end_date) {
if ($dt >= $start_date) $result[] = $dt->format('Y-m-d');
$dt->modify('last day of this month')->modify('+2 Sundays');
}
print_r ($result);
輸出是:
Array
(
[0] => 2016-09-11
[1] => 2016-10-09
[2] => 2016-11-13
[3] => 2016-12-11
[4] => 2017-01-08
[5] => 2017-02-12
[6] => 2017-03-12
[7] => 2017-04-09
[8] => 2017-05-14
[9] => 2017-06-11
[10] => 2017-07-09
[11] => 2017-08-13
[12] => 2017-09-10
)
請使用PHP類DateTime和DateInterval的。在DateInterval手冊頁上,有與您的問題類似的代碼示例。
試試這個
$startdate = '2016-08-24';
$enddate = '2017-09-24';
getSundays($startdate,$enddate);
function getSundays($startdate,$enddate) {
$startweek=date("W",strtotime($startdate));
$endweek=date("W",strtotime($enddate));
$year=date("Y",strtotime($startdate));
for($i=$startweek;$i<=$endweek;$i++) {
$result=getWeek($i,$year);
if($result>$startdate&&$result<$enddate) {
echo date('Y-m-d', strtotime('second sunday of '.date("F",strtotime($startdate)).' '.$year)).'<br/>';
//echo " Sunday:"."<br>";
}
}
}
function getWeek($week, $year) {
$dto = new DateTime();
$result = $dto->setISODate($year, $week, 0)->format('Y-m-d');
return $result;
}
的http:// stackoverflow.com/questions/15886166/calculate-sundays-between-two-dates將讓你開始 –