私は2つの日付を持っています。どのようにPHPコードでそれを行うには?毎月第2日曜日に2つの日付の間に取得するには?
私の上記の2つの日付以下。
$start_date = '2016-08-24';
$end_date = '2017-09-24';
あなたに
私は2つの日付を持っています。どのようにPHPコードでそれを行うには?毎月第2日曜日に2つの日付の間に取得するには?
私の上記の2つの日付以下。
$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のマニュアルページには、問題に似たコードの例があります。
これは1
$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です –