開発環境 PHP7
どう計算しても合わないので困っています;
第一週目の日曜を1としてカウントし始め、
第五週目の土曜まで次の様に連番を振っていくスクリプトを組んでいます。
最終的には特定の日付を入力した時に、対応した番号が表示できれば良いのですが、試行錯誤してもうまく計算が合わず違う番号が出力されてしまいます。
PHP
1/* 今日の日付でテスト */ 2 3// 今日の日付 4list($y,$m,$d) = explode("-",date("Y-m-d")); 5 6// 今日の曜日は何番目か 7$weekday_num = date("w"); 8 9// 今日は何週目か 10$week_num = getWeekNo($y,$m,$d); 11 12// 計算 13$day_num = ($weekday_num + 1) * $week_num; 14echo $day_num; 15 16// 例えば上記だと 2020年9月26日が第四週目の土曜なので 28が出力されますが 17// 2020年9月27日は第五週目の日曜なので29となるはずがdate("w")が0のせいか 4 と出てしまいます。 18 19function getWeekNo($y,$m,$d){ 20 $l = date("l",mktime(0,0,0,$m,$d,$y)); 21 $f = date("F",mktime(0,0,0,$m,$d,$y)); 22 if(date("j",strtotime("first {$l} of {$f} {$y}"))==$d) return 1; 23 if(date("j",strtotime("second {$l} of {$f} {$y}"))==$d) return 2; 24 if(date("j",strtotime("third {$l} of {$f} {$y}"))==$d) return 3; 25 if(date("j",strtotime("fourth {$l} of {$f} {$y}"))==$d) return 4; 26 if(date("j",strtotime("fifth {$l} of {$f} {$y}"))==$d) return 5; 27 return false; 28} 29
回答お願いしたい点は、
・最終的に $day_num の計算をどうすれば辻褄が合うか
です。
どうか力をお貸し頂ければ幸いです。
計算が難しいのであれば
曜日番号と週番号を配列キーに、要素にIDを入れて、
手動で出力させようと思っています。。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/26 05:07