phpで特定の範囲の日付から祝日を返却する関数、土日を返却する関数、平日のみを返却する関数を作成しました。
get_public_holidayとget_weekendは正常に動くのですが、get_weekdaysのみ期待する結果となりません。
どうやらget_weekendの土日を判定するところでうまくいっていないのですが、get_weekend単体ではうまくいきます。
よろしくお願いします。
ソースコード(期待する結果とならない)
php
1$judge_h = new holiday; 2var_dump($judge_h->get_weekdays('2020-08-07', '2020-08-17')); // 期待値にならない 3var_dump($judge_h->get_public_holiday('2020-08-07', '2020-08-17')); // 正常 4var_dump($judge_h->get_weekend('2020-08-07', '2020-08-17')); // 正常 5 6 7class holiday 8{ 9 public function get_weekdays($from_date, $to_date) 10 { 11 $days = array(); 12 do { 13 array_push($days, $from_date); 14 $from_date = date("Y-m-d", strtotime($from_date . "+1 day")); 15 } while ($from_date <= $to_date); 16 17 // 土日を取得 18 $weekend = $this->get_weekend($from_date, $to_date); 19 20 // 土日を削除 21 $slice_weekend = array_values(array_diff($days, $weekend)); 22 23 // 祝日を削除 24 $slice_public_holiday = array_flip($this->get_public_holiday($from_date, $to_date)); 25 26 return array_values(array_diff($slice_weekend, $slice_public_holiday)); 27 } 28} 29
回答1件
あなたの回答
tips
プレビュー