ポンクソフト

今月のカレンダー - PHPで日付・時刻の計算

前ページ PHPで日付・時刻の計算 TOP 次ページ

目次

  1. PHPで日付・時刻の計算
  2. 日付・時刻に関する関数
  3. 年齢計算
  4. 今月のカレンダー
  5. 年月を指定できるカレンダー
  6. 予定表
  7. 予定表(単一ソース)

今月のカレンダーを表示する

日付・時刻計算の応用例として、カレンダーを表示するプログラムを作成します。

プログラムの作成

以下のソースを入力してください。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>今月のカレンダー</title>
</head>
<body>
<?php
$wstr = array('日', '月', '火', '水', '木', '金', '土');
$now = time();
$year = date("Y", $now);
$month = date("n", $now);
$day = date("j", $now);
$dnum = date("t", $now);
for ($i = 1; $i <= $dnum; $i++) {
  $t = mktime(0, 0, 0, $month, $i, $year);
  $w = date("w", $t);
  if ($i == $day) print "<strong>";
  if ($w == 0) print "<font color='red'>";
  print date("Y年m月d日", $t);
  print "(" . $wstr[$w] . ")";
  if ($w == 0) print "</font>";
  if ($i == $day) print "</strong>";
  print "<br>\n";
}
?>
</body>
</html>
入力が終わったら「calendar1.php」という名前でサーバにアップし、ブラウザで閲覧してください。今月のカレンダーが表示されます。

ソースの解説

$wstr = array('日', '月', '火', '水', '木', '金', '土');
変数 $wstr は曜日の文字が入る配列です。
$now = time();
まず変数 $now に現在日時を格納します。
$year = date("Y", $now);
$month = date("n", $now);
$day = date("j", $now);
$year に現在年(4桁)、$month に現在月(先頭に0は付けない)、$date に現在日(先頭に0は付けない)をそれぞれ格納します。
$dnum = date("t", $now);
$dnum に今月の日数を格納します。うるう年なども考慮されます。
for ($i = 1; $i <= $dnum; $i++) {
$i に日を設定し、1日から月の最後の日までループします。
$t = mktime(0, 0, 0, $month, $i, $year);
mktime関数により、$i に設定された日の0時0分0秒のタイムスタンプを取得し $t に格納します。
$w = date("w", $t);
$w に曜日の数値(0:日曜、1:月曜、... 6:土曜)を格納します。
if ($i == $day) print "<strong>";
本日を表示している場合は強調文字にしています。
if ($w == 0) print "<font color='red'>";
日曜を表示している場合は赤い文字にしています。
print date("Y年m月d日", $t);
さきほど $t に設定したタイムスタンプに従って日付を出力しています。年は4桁、月と日は2桁に満たない場合は0を付けます。
print "(" . $wstr[$w] . ")";
曜日の文字をカッコで囲み、出力しています。$w に設定した曜日の数値を配列 $wstr の添え字にすると曜日の文字が取得できます。
前ページ PHPで日付・時刻の計算 TOP 次ページ
このエントリーをはてなブックマークに追加 そっか0

このページに関するコメントをどうぞ

お名前:



すごく参考になりました!
ありがとうございます。
2017/03/30 09:47

名無しのリーク
香川県ルーちゃん餃子のフジフーヅはバイトにパワハラの末指切断の大けがを負わせた犯罪企業
2017/03/29 23:34

高級時計 ブランド レディース
特恵中-新作入荷!
当社の商品は絶対の自信が御座います
迅速、確実にお客様の手元にお届け致します
実物写真、付属品を完備しております。
低価格を提供すると共に、品質を絶対保証しております
ご注文を期待しています
2017/03/28 18:37

カルティエ ソリテール
ブランドコピーブランドN級品専門店
史上最も激安ブランドブランドコピー-即日 配送可,100%入荷。
当店は正規品と同等品質は品質3年保証でご注文から5 日でお届け致します。
レディースとメンズ激安通販専門店!品質と本物は同様です。
全て新品、高い品質、激安 、送料は無料です( 日本全国)すべての商品は品質2年無料保証です。
ブランドコピー時計:
2017/03/24 14:04

カリマー
解りやすくて、とてもいいサイトですね!
phpは初心者ですが、最後まで到達できるよう頑張ります!
2017/03/23 04:03


ああああ
2017/03/23 00:54

オメガ ボーイズ
★2017最高等級新しい商品大量入荷!
■在庫情報随時更新!(*^-^*)
■信用第一、良い品質、低価格は。
★歓迎光臨★送料無料(日本全国)
ご注文を待ちしております
よろしくお願いいたします_(._.)_
2017/03/22 09:09


テスト
2017/03/21 14:02

ゆうた
かりんがすき
2017/03/17 14:36

saraebo
別windowsとして実装することなく、actionのphpで、コマンドとするデータベース等の更新で、その結果をクライアントに返さない(homeページの元画面は変わらない。)とする事はできるのでしょうか?
2017/03/17 12:09

残りを読む »