プロが教えるわが家の防犯対策術!

いつもありがとうございます。
下記のようなコードを書いて1週間のカレンダーを作っていますが、
どうしても日曜日からの表示になります。

この表示を月曜日から始まり、日曜日で終わるカレンダーにならないものか考えるのですが、どうもうまくいきません。

よきアドバイスをお願いします。



<?
//来週・前週の---日曜日----をgetした値
$get_sunday = htmlspecialchars($_GET["get_sunday"]);
$entry_day = htmlspecialchars($_GET["entry_day"]);

//変数の値の識別カレンダー表示
//get_sunday (来週・前週)の値がgetされていたら
if($get_sunday!=""){
//getされた日曜日の日付
$mm = date("m",strtotime($get_sunday));
$dd = date("d",strtotime($get_sunday));
$yyyy = date("Y",strtotime($get_sunday));

//getされた日曜日の日付(日のみ)
$sunday_num = $dd;

//getされた日曜日の日付(年月日)
$kyujin_day = date("Y-m-d",mktime(0,0,0,$mm,$dd,$yyyy));
}

// =================================================
//変数の値の識別           カレンダー表示

//entry_day (指定した日)の値をgetされたら
if($entry_day!=""){

$mm = date("m",strtotime($entry_day));
$dd = date("d",strtotime($entry_day));
$yyyy = date("Y",strtotime($entry_day));

//$week_numに今日の曜日ナンバーを代入(mktime(0,0,0,今日の月,今日の日,今日の年)
//日0・月1・火2・水3・木4・金5・土6
$week_num = date("w", mktime(0,0,0,$mm,$dd,$yyyy));
//entry_dayの値
$kyujin_day = date("Y-m-d",mktime(0,0,0,$mm,$dd,$yyyy));

//日曜日の日付(日のみ)
$sunday_num = $dd - $week_num;

}

// =================================================
//変数の値がない場合は本日の日付の取得 カレンダー表示

if($get_sunday=="" and $entry_day==""){

$mm = date("m",time());
$dd = date("d",time());
$yyyy = date("Y",time());

//$week_numに今日の曜日ナンバーを代入(mktime(0,0,0,今日の月,今日の日,今日の年)
$week_num = date("w", mktime(0,0,0,$mm,$dd,$yyyy));
$kyujin_day = date("Y-m-d",mktime(0,0,0,$mm,$dd,$yyyy));

//日曜日の日付(日のみ)
$sunday_num = $dd - $week_num;
}

//前週、次週に日曜日の日付を取得    カレンダー表示
$sunday_last = $sunday_num - 7;
$sunday_next = $sunday_num + 7;

?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>レンダー画面</title>
</head>

<body>
<table>
<tr>
<td></td>
<td bgcolor="#00FFFF">日</td>
<td bgcolor="#00FFFF">月</td>
<td bgcolor="#00FFFF">火</td>
<td bgcolor="#00FFFF">水</td>
<td bgcolor="#00FFFF">木</td>
<td bgcolor="#00FFFF">金</td>
<td bgcolor="#00FFFF">土</td>
<td></td>
</tr>
<tr>
<form method="get" name="form2"action="test2.php">
<td>
<input type="hidden" name="get_sunday" value= "<?php echo date("Y-m-d", mktime(0, 0, 0, $mm, $sunday_last, $yyyy)); ?>">
<input type="submit" name="Submit2" value="前週へ">
</td>
</form>

<?
//週カレンダー(前週ボタン作成)ここまで
//週カレンダー日付を入れる
$w2 = $sunday_num;
$select_day = date("Y-m-d", mktime(0, 0, 0, $mm, $w2, $yyyy));
$i = 0;
while($i < 7) {
//日曜日から順に日付を$select_dayに入れていく
?>
<td bgcolor="#CCFFFF"><? echo date("m月d日", mktime(0, 0, 0, $mm, $w2+$i, $yyyy)) ?></td>
<?
// 日付けを一つ繰り上げる
$i++;
}
?>
<form method="get" name="form2" action="test2.php">
<td>
<input type="hidden" name="get_sunday" value= "<?php echo date("Y-m-d", mktime(0, 0, 0, $mm, $sunday_next, $yyyy)); ?>">
<input type="submit" name="Submit" value="次週へ">
</td>
</form>
</table>
</body>
</html>

A 回答 (1件)

$sunday_num = $dd - $week_num;



$sunday_num = $dd - $week_num +1;
で月曜からの表示になります。
あとは<td>の順番を変えるのと。

後はコードこのままでも大丈夫だと思いますが不安なら
他の方のコメントも少し待った方がよいかもですね

このカレンダーなかなか面白いですね
私は見たことない感じなので、今後の勉強にさせて頂きます
※ 転用するような真似は絶対しません
    • good
    • 0
この回答へのお礼

ありがとうございます。

GETの受け渡しで日付をクリックすると
送信された日曜日がどうしても
その週にならなかったのですが、

1を足したり引いたりで出来ました。
ありがとうございました。

お礼日時:2008/10/31 18:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!