12月
15
2011

PHPで指定月の日一覧を動的に表示

phpで指定した月の日一覧を出すのに調べたのでまとめ。

 

ページ構成

構成としては、

◆メインページ

  • 『12月』、『11月』などの月の一覧リンクがある。
  • リンクに『12月』なら?year=2011&month=12をパラメータ付加

◆遷移後ページ

  • メインページからパラメータをGETで受け取る
  • <?php のファイル冒頭で$_GET['year']、$_GET['month']の中身があるか確認
  • 無ければ現在の年月を変数にセット。(年は、$get_year,月は、$get_monthに格納)
  • $get_year,$get_monthを用いて指定月の終わりの日を取得
  • 終日までfor文で繰り返す
  • これで、指定月の日一覧を取得できる。

実際のコーディング

◆遷移後のページ
▼<?php のファイル冒頭で$_GET['year']、$_GET['month']の中身があるか確認
if(isset($_GET['year'])){
$get_year=$_GET['year'];
}
if(isset($_GET['month'])){
$get_month=$_GET['month'];
}else{
$today = getdate();
$get_year=$today[year];
$get_month=$today[mon];
}

▼$get_year,$get_monthを用いて指定月の終わりの日を取得
//指定月の最終日を取得
$countdate=date(“t”, mktime(0, 0, 0, $get_month, 1, $get_year));
//ex.2011/12/31
$pointing_day=$get_year.”/”.$get_month.”/”.$countdate;
//現在の年月日を取得
$now_day=date(“Y/m/d”);
//現在の年月日と比べる
if($now_day<$pointing_day){
//最終日を現在の日に書き換える
$countdate=date(“d”);
}

for( $i=1; $i <= $countdate; $i++ ){ //指定月の日数分ループする

echo “<a href=”\&quot;?year={$get_year}&amp;month={$get_month}&amp;day={$i}\&quot;”>{$i}日</a>”;

if($i%7==0){
//7個区切りにする
echo “<br />”;
}
}

こんな感じで指定月の日一覧を取得するコード書きました。

参考になれば幸いです。

 

分かったかと思いますが、

ちなみに、現在の月を指定してくると現在の日付までしか表示させないようにしてます。

未来の日出してリンクつなげても表示させるものがなかったので、そうしてます。

 

がるがん

 

つぶやきをどうぞー