質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

1回答

3780閲覧

PHPのカレンダーを月曜日表記にする方法

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2015/05/14 15:15

こちらはPHPにて制作したカレンダーになります。
(WEBサイトのサンプルを参考に致しました)
こちらは、日曜日始まりになりますが、これを
月曜日始まりのカレンダーにする場合は、どのようなコードを追加すれば良いでしょうか。

<?php mb_language("ja"); mb_internal_encoding("UTF-8"); ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>AnnualCalendar</title> </head> <body> <?php if ($_POST["nen"]) { $nen = $_POST["nen"]; } else { $nen = date("Y"); } $youbi = array("日","月","火","水","木","金","土"); $tdiv = 0; for ($gatsu = 1; $gatsu < 13; $gatsu++) { $hi = 1; $you = date("w", mktime(0, 0, 0, $gatsu, $hi, $nen)); if ($tdiv == 0) { print "<table border='0'>\n<tr>\n<td>\n<div style='float:left;margin-right:20px;margin-bottom:8px;'>"; $tdiv++; } elseif (($tdiv == 1) or ($tdiv == 2)) { print "<div style='float:left;margin-right:20px;margin-bottom:8px;'>"; $tdiv++; } else { print "<div style='margin-bottom:8px;'>"; $tdiv = 0; } ?> <table border="1"> <tr> <td colspan="7" align="center"> <?php print $nen . "年" . $gatsu . "月</td>\n"; ?> </tr> <tr> <td align="center" bgcolor="#ffc0cb"><span style="font-size=85%">日</span></td> <td align="center"><span style="font-size=85%">月</span></td> <td align="center"><span style="font-size=85%">火</span></td> <td align="center"><span style="font-size=85%">水</span></td> <td align="center"><span style="font-size=85%">木</span></td> <td align="center"><span style="font-size=85%">金</span></td> <td align="center" bgcolor="#b0c4de"><span style="font-size=85%">土</span></td> </tr> <tr> <?php if ($hi == 1) { $yo = 0; for ($i = $yo; $i < $you; $i++) { print "<td>&nbsp;</td>"; } } $monday = 0; for ($i = $hi; $i < 40; $i++) { $you = date("w", mktime(0, 0, 0, $gatsu, $hi, $nen)); if ($you == 1) { $monday++; } $y2 = ($nen - 2000); $syunbun = (int)(20.69115 + 0.2421904 * $y2 - (int)($y2/4 + $y2/100 + $y2/400)); $syuubun = (int)(23.09000 + 0.2421904 * $y2 - (int)($y2/4 + $y2/100 + $y2/400)); if (($nen == date("Y")) && ($gatsu == date("n")) && ($hi == date("d"))) { //今日なら print "<td align='center' bgcolor='#8fbc8f'>" . $hi . "</td>\n"; //背景を darkseagreen に } elseif (($gatsu == 1) && ($hi == 1)) { //元日(1月1日なら) print "<td align='center' bgcolor='#ffc0cb'><span title='元日'>" . $hi . "</span></td>\n"; //背景を pink に } elseif (($gatsu == 1) && ($hi == 2) && ($you == 1)) { print "<td align='center' bgcolor='#ffc0cb'><span title='振替休日'>" . $hi . "</span></td>\n"; } elseif (($gatsu == 1) && ($monday == 2) && ($you == 1)) { print "<td align='center' bgcolor='#ffc0cb'><span title='成人の日'>" . $hi . "</span></td>\n"; } elseif (($gatsu == 2) && ($hi == 11)) { print "<td align='center' bgcolor='#ffc0cb'><span title='建国記念の日'>" . $hi . "</span></td>\n"; } elseif (($gatsu == 2) && ($hi == 12) && ($you == 1)) { print "<td align='center' bgcolor='#ffc0cb'><span title='振替休日'>" . $hi . "</span></td>\n"; } elseif (($nen > 1999 ) && ($gatsu == 3) && ($hi == $syunbun)) { print "<td align='center' bgcolor='#ffc0cb'><span title='春分の日'>" . $hi . "</span></td>\n"; } elseif (($nen > 1999 ) && ($gatsu == 3) && ($hi == ($syunbun + 1)) && ($you == 1)) { print "<td align='center' bgcolor='#ffc0cb'><span title='振替休日'>" . $hi . "</span></td>\n"; } elseif (($nen < 2007) && ($gatsu == 4) && ($hi == 29)) { print "<td align='center' bgcolor='#ffc0cb'><span title='みどりの日'>" . $hi . "</span></td>\n"; } elseif (($nen < 2007) && ($gatsu == 4) && ($hi == 30) && ($you == 1)) { print "<td align='center' bgcolor='#ffc0cb'><span title='振替休日'>" . $hi . "</span></td>\n"; } elseif (($nen > 2006) && ($gatsu == 4) && ($hi == 29)) { print "<td align='center' bgcolor='#ffc0cb'><span title='昭和の日'>" . $hi . "</span></td>\n"; } elseif (($nen > 2006) && ($gatsu == 4) && ($hi == 30) && ($you == 1)) { print "<td align='center' bgcolor='#ffc0cb'><span title='振替休日'>" . $hi . "</span></td>\n"; } elseif (($gatsu == 5) && ($hi == 3)) { if (($nen > 2006) && ($you == 0)) { $kokuminf = on; } print "<td align='center' bgcolor='#ffc0cb'><span title='憲法記念日'>" . $hi . "</span></td>\n"; } elseif ((($nen < 2007) && ($gatsu == 5) && ($hi == 4) && ($you == 2)) or (($nen < 2007) && ($gatsu == 5) && ($hi == 4) && ($you == 3)) or (($nen < 2007) && ($gatsu == 5) && ($hi == 4) && ($you == 4)) or (($nen < 2007) && ($gatsu == 5) && ($hi == 4) && ($you == 5)) or (($nen < 2007) && ($gatsu == 5) && ($hi == 4) && ($you == 6))) { //国民の休日(5月4日が火~土曜日なら) print "<td align='center' bgcolor='#ffc0cb'><span title='国民の休日'>" . $hi . "</span></td>\n"; } elseif (($nen > 2006) && ($gatsu == 5) && ($hi == 4)) { if (($nen > 2006) && ($kokuminf != on) && ($you == 0)) { $kokuminf = on; } print "<td align='center' bgcolor='#ffc0cb'><span title='みどりの日'>" . $hi . "</span></td>\n"; } elseif (($gatsu == 5) && ($hi == 5)) { if (($nen > 2006) && ($kokuminf != on) && ($you == 0)) { $kokuminf = on; } print "<td align='center' bgcolor='#ffc0cb'><span title='こどもの日'>" . $hi . "</span></td>\n"; } elseif (($nen < 2007) && ($gatsu == 5) && ($hi == 6) && ($you == 1)) { print "<td align='center' bgcolor='#ffc0cb'>" . $hi . "</span></td>\n"; } elseif (($nen > 2006) && ($kokuminf == on) && ($gatsu == 5) && ($hi == 6)) { print "<td align='center' bgcolor='#ffc0cb'><span title='振替休日'>" . $hi . "</span></td>\n"; } elseif (($gatsu == 7) && ($monday == 3) && ($you == 1)) { print "<td align='center' bgcolor='#ffc0cb'><span title='海の日'>" . $hi . "</span></td>\n"; } elseif (($nen > 2015) && ($gatsu == 8) && ($hi == 11)) { print "<td align='center' bgcolor='#ffc0cb'><span title='山の日'>" . $hi . "</span></td>\n"; } elseif (($nen > 2015) && ($gatsu == 8) && ($hi == 12) && ($you == 1)) { print "<td align='center' bgcolor='#ffc0cb'><span title='振替休日'>" . $hi . "</span></td>\n"; } elseif (($gatsu == 9) && ($monday == 3) && ($you == 1)) { $keiro = $hi; if (($syuubun - $keiro) == 2) { $kokumin = $syuubun - 1; } print "<td align='center' bgcolor='#ffc0cb'><span title='敬老の日'>" . $hi . "</span></td>\n"; }

elseif (($nen > 1999 ) && ($gatsu == 9) && ($hi == $syuubun)) {
print "<td align='center' bgcolor='#ffc0cb'><span title='秋分の日'>" . $hi . "</span></td>\n";
}
elseif (($nen > 1999 ) && ($gatsu == 9) && ($hi == ($syuubun + 1)) && ($you == 1)) {
print "<td align='center' bgcolor='#ffc0cb'><span title='振替休日'>" . $hi . "</span></td>\n";
}
elseif (($gatsu == 10) && ($monday == 2) && ($you == 1)) {
print "<td align='center' bgcolor='#ffc0cb'><span title='体育の日'>" . $hi . "</span></td>\n";
}
elseif (($gatsu == 11) && ($hi == 3)) {
print "<td align='center' bgcolor='#ffc0cb'><span title='文化の日'>" . $hi . "</span></td>\n";
}
elseif (($gatsu == 11) && ($hi == 4) && ($you == 1)) {
print "<td align='center' bgcolor='#ffc0cb'><span title='振替休日'>" . $hi . "</span></td>\n";
}
elseif (($gatsu == 11) && ($hi == 23)) {
print "<td align='center' bgcolor='#ffc0cb'><span title='勤労感謝の日'>" . $hi . "</span></td>\n";
}
elseif (($gatsu == 11) && ($hi == 24) && ($you == 1)) {
print "<td align='center' bgcolor='#ffc0cb'><span title='振替休日'>" . $hi . "</span></td>\n";
}
elseif (($gatsu == 12) && ($hi == 23)) {
print "<td align='center' bgcolor='#ffc0cb'><span title='天皇誕生日'>" . $hi . "</span></td>\n";
}
elseif (($gatsu == 12) && ($hi == 24) && ($you == 1)) {
print "<td align='center' bgcolor='#ffc0cb'><span title='振替休日'>" . $hi . "</span></td>\n";
}
elseif ($you == 0) {
print "<td align='center' bgcolor='#ffc0cb'>" . $hi . "</td>\n";
}
elseif ($you == 6) {
print "<td align='center' bgcolor='#b0c4de'>" . $hi . "</td>\n";
}
else {
print "<td align='center'>" . $hi . "</td>\n";
}
$hi++;
if (checkdate($gatsu, $hi, $nen) == false) {
break;
}
if ($you == 6) {
print "</tr>\n<tr>\n";
}
}
$hi = $hi -1;
$you = date("w", mktime(0, 0, 0, $gatsu, $hi, $nen));
if ($you < 6) {
$yo = $you;
for ($yo; $yo < 6; $yo++) {
print "<td> </td>";
}
}
?>

</tr> </table> </div> <?php if ($tdiv == 0) { print "</td>\n</tr>\n</table>\n"; } } ?> <form method="POST" action="AnnualCalendar.php"> <select name="nen"> <option <?php if ($nen == "2011") { print "selected";} ?> value="2011">2011</option> <option <?php if ($nen == "2012") { print "selected";} ?> value="2012">2012</option> <option <?php if ($nen == "2013") { print "selected";} ?> value="2013">2013</option> <option <?php if ($nen == "2014") { print "selected";} ?> value="2014">2014</option> <option <?php if ($nen == "2015") { print "selected";} ?> value="2015">2015</option> <option <?php if ($nen == "2016") { print "selected";} ?> value="2016">2016</option> <option <?php if ($nen == "2017") { print "selected";} ?> value="2017">2017</option>

</select>
<input type="submit" value="Go">

</form> </body> </html>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

とりあえず月曜始まりにするだけであれば以下のような変更で可能かと思います。

  • 曜日ヘッダの日曜日分を右端に移動
  • 1週目の反復処理を以下のように変更

lang

1$yo = 1; 2for ($i = $yo; $i < ($you == 0 ? 7 : $you); $i++) {
  • 週末の判定(次週への切り替えで土曜日6で判定しているところ)を日曜日0に変更
  • 最終週の反復処理終了条件を1増やす(6未満を7未満に変更)

投稿2015/05/19 06:33

TaMaMhyu

総合スコア1356

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問