No.3ベストアンサー
- 回答日時:
こんな感じでどうでしょ?
<?PHP
$month=$_REQUEST["num"];
if(preg_match("/^[0-9]{4}\/[0-9]{2}$/",$month,$matches)){
$date=date(strtotime($matches[0]."/01"));
}else{
$date=mktime(0,0,0,date("m"),1,date("Y"));
}
$y=date("Y",$date);
$m=date("m",$date);
$start_day=-date("w",$date)+1;
$end_day =date("d",mktime(0,0,0,$m+1,0,$y))+(6-date("w",mktime(0,0,0,$m+1,0,$y)));
$count=0;
for($i=$start_day;$i<=$end_day;$i++){
if($count==0) $tbody.="<tr>\n";
$tbody.="<td>".date("d",mktime(0,0,0,$m,$i,$y))."</td>";
if($count++==6){ $tbody.="\n</tr>\n"; $count=$count%7;}
}
$tbody="<tbody>\n{$tbody}</tbody>\n";
print <<<eof
<html>
<head>
<title>万年カレンダー</title>
<style>
.bgred{
background-color:#ffc0c0;
}
.bgblue{
background-color:#c0c0ff;
}
h1{
background-Color:#cccccc;
}
#table0{
width:300px;
border-collapse:collapse;
}
th,td{
border:1px solid #000000;
}
</style>
</head>
<body>
<h1>{$y}年{$m}月のカレンダー</h1>
<table id="table0">
<col class="bgred" /><col span="5" /><col class="bgblue" />
<thead>
<tr>
<th>日</th><th>月</th><th>火</th><th>水</th><th>木</th><th>金</th><th>土</th>
</tr>
</thead>
{$tbody}
</table>
<form>
<select name="num">
<option value="2008/01">2008年1月</option>
<option value="2008/02">2008年2月</option>
<option value="2008/03">2008年3月</option>
<option value="2008/04">2008年4月</option>
<option value="2008/05">2008年5月</option>
<option value="2008/06">2008年6月</option>
</select>
<input type="submit" value="go">
</form>
</body>
eof;
?>
No.2
- 回答日時:
こんな感じでやってみるといいかと。
ちなみに祝日は、ほいほい変わる物なので、管理用のテーブルを
用意しておいて、合致した場合は祝日・・・などの処理が必要です
<?PHP
$month=$_REQUEST["month"];
if(preg_match("/^[0-9]{4}\/[0-9]{2}$/",$month,$matches)){
$date=date(strtotime($matches[0]."/01"));
}else{
$date=mktime(0,0,0,date("m"),1,date("Y"));
}
$y=date("Y",$date);
$m=date("m",$date);
$start_day=-date("w",$date)+1;
$end_day =date("d",mktime(0,0,0,$m+1,0,$y))+(6-date("w",mktime(0,0,0,$m+1,0,$y)));
print "{$y}年{$m}月<br>";
print "日月火水木金土<br>";
$count=0;
for($i=$start_day;$i<=$end_day;$i++){
print date("d",mktime(0,0,0,$m,$i,$y));
if($count++==6) print "<br>";
$count=$count%7;
}
?>
<form>
<select name="month">
<option value="2008/01">2008年1月</option>
<option value="2008/02">2008年2月</option>
<option value="2008/03">2008年3月</option>
<option value="2008/04">2008年4月</option>
<option value="2008/05">2008年5月</option>
<option value="2008/06">2008年6月</option>
</select>
<input type="submit" value="go">
</form>
この回答への補足
?php
if($_GET['num']==''){
$today_year =date("Y");
$today_month=date("n");
$today_month1=date("n")+1;
$today_month2=date("n")+2;
}else{
$timestamp=mktime(0,0,0,date("n")+$_GET['num'],
date("Y"));
$today_year =date("Y",$timestamp);
$today_month=date("n",$timestamp);
$today_month1=date("n",$timestamp)+1;
$today_month2=date("n",$timestamp)+2;
}
$current=mktime(0,0,0,$today_month,1,$today_year);
$current1=mktime(0,0,0,$today_month1,1,$today_year);
$current2=mktime(0,0,0,$today_month2,1,$today_year);
$youbi=date("w",$current);
$youbi1=date("w",$current1);
$youbi2=date("w",$current2);
$hiniti=date("t",$current);
$hiniti1=date("t",$current1);
$hiniti2=date("t",$current2);
?>
<html>
<head>
<title>万年カレンダー</title>
</head>
<body>
<h1 style="background:#cccccc">
<?php print(date("Y年m月",$current)); ?>
のカレンダー</h1>
<table border="1" width="300">
<tr>
<th><font size='3' color='red'>日</th><th>月</th><th>火</th><th>水</th>
<th>木</th><th>金</th><th><font size='3' color='blue'>土</th>
</th>
<?php
for($i=1;$i<=$youbi+$hiniti;$i++){
if($i%7==1){print("<tr>");}
if($i>$youbi){
print("<td>".($i-$youbi)."</td>");
}else{
print("<td>w</td>");
}
if($i%7==0){
print("</tr>");
}
if($i>$hiniti){
print("<td>w</td>");
}
}
?>
の場合if($i>$hiniti){
print("<td>w</td>");をどういじれば、その月のカレンダーに翌月の分まで表示ができますか?とりあえず、今は空白にwの文字列を与えていますが、これは無視してください。
すいません。お願いします!
ありがとうございます。
まだ、プログラムを見ただけではどのように構成されているのかなどが分からない為、実際に見ながら勉強を続けたいと思います。
わざわざありがとうございました!
No.1
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Access DTPickerの初期表示月を変えたい 1 2022/08/02 08:55
- Google+ googleカレンダーのサイトへの貼付けについて 1 2023/08/28 13:52
- Visual Basic(VBA) 翌日にお休み予定の従業員がいる場合にアラートを出したい 1 2023/07/11 11:18
- Visual Basic(VBA) excel2016でリストからカレンダーに内容を反映させたいです 2 2022/10/27 15:32
- Excel(エクセル) ②Excel 簡単にシートコピーしたら前日の残高と日付を変更させたい→マクロの記録でエラーが出ます 8 2022/07/16 20:40
- Excel(エクセル) エクセルの祝日に色が反映しない 4 2022/05/18 09:58
- Excel(エクセル) エクセルでカレンダーを作りたい 5 2023/05/16 07:32
- Excel(エクセル) 週毎の集計 2 2023/08/04 16:56
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- Excel(エクセル) 下記エクセルの式がなぜこうなるのか理由が知りたいです。 6 2022/08/20 00:43
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プルダウンリンクを外部ファイ...
-
セレクトボックスの選択結果を...
-
簡単な買い物カゴ機能を作成し...
-
プルダウンとCSVの連動
-
フォームの選択リストで表示用...
-
php プルダウンメニュー
-
コンボボックス(プルダウン)...
-
vb2005のcomboboxについて
-
Smarty 配列のキーを変数で
-
セレクトフォームで選択した複...
-
自作ブログのPing送信について
-
PHPでURLにジャンプするには?
-
PHPで画像の渡しが上手く行きま...
-
DBの値をチェックボックスに反...
-
if function PHP
-
auサイトで変数のついた同一URL...
-
フォームでのリセットを使う方法
-
氏名をあいうえお順に並べて行...
-
PHP ボタンが押されたら処理を...
-
フォームボタンを押すたびに数...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラミング言語で、使える...
-
プルダウンとCSVの連動
-
複数のセレクトボックスを1つに...
-
複数 selectフォームから今回on...
-
【PHP&JavaScript】複数の別ウ...
-
「"」(ダブルクォーテーション)...
-
phpで重複チェック
-
phpでのセレクトボックスの値を...
-
php セレクトボックス 値取得
-
<select>文、foreachと初期値設定
-
ラジオボタンの値を受け取ってP...
-
2つのプルダウンメニュから受け...
-
連動させたいセレクトボックス...
-
PHP セレクトボックスの値 GET...
-
Smartyで、セレクトボックスが...
-
現在時刻を反映させた時刻のプ...
-
PHPとpostgreSQL プルダウンの作成
-
[Ethna]selectボックスに空値を...
-
GET又はPOSTで受け取るデータに...
-
プルダウンで選択された値を保持
おすすめ情報