はじめに

 

カレンダーのシステムを作ることになったので、日付けを週ごとに並べる為のグループ分けするロジックが必要になりました。

PHPの関数には、対象の日付が月の何周目なのか調べるものがありません。

仕方ないので自作することにしました。

 

環境

PHP: 7.1

 

導入手順

以下のロジックで計算することができます。

// 対処の日付
$TargetDay = date('Y-m-d');     

$WeekNum = intval(date('w', strtotime($TargetDay)));
$j = intval(date('j', strtotime($TargetDay)));
$WeekEndDay = $WeekNum !=6 ? (6 - $WeekNum) + $j : $j;

// 結果
return ceil($WeekEndDay/7);

 

解説

考え方としては、日付を週の統一した数字にまとめてしまうことです。

月末を除けば、すべての週の日付は週末(土曜日)の日付に収束させることができます。

それを7(一週間)で割って、切り上げをしてやれば、答えがでます。

 

まとめ

このロジックを考えるのに半日費やしてしまいました・・・

なんとか満足の結果が出て良かったです。

 

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください