私は例えば、二つの日付を配置する必要があり、範囲の日付を2016年11月1日に2016年10月1日からと生成し、すべての土曜日と日曜日、その範囲内の日付を。
たとえば、次のようになります。
2016-10-1
2016-10-2
2016-10-8
2016-10-9
2016-10-15
2016-10-16
2016-10-22
2016-10-23
2016-10-29
2016-10-30
注:週末だけではありません。たとえば、私は次のような配列を持っています:
array('monday','saturday','sunday')
私はこのコードを試しましたが、これは正しく機能しません:
$event_da = '2016-10-01';
$event_a = '2016-11-01';
$weekdays = array('saturday','sunday');
for ( $i = $event_da; $i <= $event_a; $i = $i + 86400 ) {
$thisDate = date( 'Y-m-d', $i );
$getDate = date('l', strtotime($thisDate));
if ( in_array( $getDate, $weekdays) ) {
echo $thisDate;
}
}
どうぞ。これは非常に柔軟なコードであり、任意の2つの日付と、フィルタリングする日を指定する別の配列を入力できます。
function isWeekend($start_date, $end_date, $expected_days) {
$start_timestamp = strtotime($start_date);
$end_timestamp = strtotime($end_date);
$dates = array();
while ($start_timestamp <= $end_timestamp) {
if (in_array(date('l', $start_timestamp), $expected_days)) {
$dates[] = date('Y-m-d', $start_timestamp);
}
$start_timestamp = strtotime('+1 day', $start_timestamp);
}
return $dates;
}
$start_date = '2016-10-01';
$end_date = '2016-11-01';
$expected_days = array('Monday','Saturday','Sunday');
$weekend_dates = isWeekend($start_date, $end_date, $expected_days);
出力:
Array
(
[0] => 2016-10-01
[1] => 2016-10-02
[2] => 2016-10-03
[3] => 2016-10-08
[4] => 2016-10-09
[5] => 2016-10-10
[6] => 2016-10-15
[7] => 2016-10-16
[8] => 2016-10-17
[9] => 2016-10-22
[10] => 2016-10-23
[11] => 2016-10-24
[12] => 2016-10-29
[13] => 2016-10-30
[14] => 2016-10-31
)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加