PHPを使ってカレンダーを作成しました。が、コードの意味が良く分かりません。
コードは以下の通りです。
<?php
if($_GET['num']==''){
$today_year = date("Y"); //4桁の西暦年
$today_month = date("n"); //1~12の月
}else{
$timestamp = mktime(0,0,0,date("n")+$_GET['num'],date("d"),date("Y"));
$today_year = date("Y",$timestamp); $today_month = date("n",$timestamp); //1~12月
}
$current = mktime(0,0,0,$today_month,1,$today_year);
$first_day = date("w",$current); //1日の曜日を0~6に当てはめる
$last_day= date("t",$current); //月の日数
?>
<html>
<head>
<title>カンレンダー</title>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
</head>
<body>
<h1><?php print (date("Y年m月",$current)); ?>のカレンダー</h1>
<table border="1" cellpadding="0" cellspacing="2">
<tr>
<th>日</th><th>月</th><th>火</th><th>水</th><th>木</th><th>金</th><th>土</th>
</tr>
<?php
for($i=1; $i<=$first_day+$last_day; $i++){
if($i%7==1){print ("<tr>");}
if($i>$first_day){
print ("<td>".($i-$first_day)."</td>");
}else{
print ("<td></td>");
}
if($i%7==0){print ("</tr>");}
}
?>
</table>
</body>
</html>
for以降の部分が良く分かりません。よろしくお願いします。※上記のスクリプトで正しく表示されることは確認済です。
No.1ベストアンサー
- 回答日時:
$i は、1から順番に増えていきますけれども、
1 2 3 4 5 6 7
8 9 10 11 12 13 14
……
ですので、
$i を 7 で割った余りが1の時には週の始まりで
$i を 7 で割った余りが0の時には、週の終わりです。
それが、
>if($i%7==1){print ("<tr>");} #週の始まり
>if($i%7==0){print ("</tr>");} #週の終わり
で一組の<tr></tr>が一週間ということですね。
>if($i>$first_day){
の部分は、月の始まり以前かどうかを調べて
>print ("<td></td>");
で月が始まっていない部分はスペースに
>print ("<td>".($i-$first_day)."</td>");
で始まっている部分はその日を表示するようになっています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) python 気象データの取得 2 2023/06/20 23:54
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- Visual Basic(VBA) 今日の日付が過ぎたらその行を削除したい 1 2023/04/01 20:06
- PHP php エラー 2 2022/10/23 16:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
開始と終了を指定して、その間...
-
Java Scriptで、ある日付に加算...
-
date関数で、曜日を日本語表示...
-
php カレンダーの休み表示
-
経過期間計算がうまくいかない
-
シェルスクリプト:N日前の日付...
-
改行されないカレンダー(PHP)
-
MS-DOSでの日付表示
-
「取得先」という表現について
-
Dosブロンプトでtabを出力したい
-
switch()文で値の大小比較
-
DTOとEntityの差は何ですか。
-
wordの差し込み印刷で文字...
-
バッチファイルでpingの結果を...
-
php 入力画面から確認表示画面...
-
ps3で久しぶりにCDの音楽情報取...
-
shシェルスクリプト 空白行の...
-
自分の掲示板にアクセス解析を...
-
VBA コレクションに2次元配列...
-
WordでExcelデータを差込...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
開始と終了を指定して、その間...
-
ファイル名に日付の挿入
-
昨日の日付を取得するVBscript
-
substrの使い方について教えて...
-
一週間の表示の仕方と文字表示
-
PHPで以下のような占いプログラ...
-
C言語を使って、ある特定の日の...
-
アップロードしたファイル名に...
-
PHPでカレンダーを作る(縦書き)
-
プルダウンメニューの値をDBに...
-
第何週かを取得したい
-
日付によって画像を変える
-
差分の月数を算出する方法
-
SQL:TIMESTAMPの期間検索を指...
-
PHP 指定した期間だけ表示した...
-
C言語でシステム日付との差を...
-
プルダウンで今日以降の日付を...
-
Accessコンボボックス
-
MovableTypeで、ある日付を過ぎ...
-
Java Scriptで、ある日付に加算...
おすすめ情報