
前回は日めくり風の年月日の表示まで完成しました。今回は、そこに曜日を追加していきます。
ちなみに、PHPをテストするにあたっては、instantWPというのを使用しております。
date()関数での曜日処理について
date()関数での曜日取得は数字に変換されています。日曜日が0で土曜日が6という感じ。
<?php
echo date("Y-m-d")."→".date("w");
?>
![]()
この数字を曜日に変換してあげたい。ということで、配列を利用してあげましょう。weekという名前の変数で0~6に対応する形で曜日を格納してあげます。で、その数字を利用して曜日を取り出してあげるようにすれば、変換完成!
<?php
$week = array("日","月","火","水","木","金","土");
echo date("Y-m-d")."→".$week[date("w")];
?>
![]()
無事日曜日の「日」が表示されました。
日めくりカレンダーに曜日を追加
前回のコードに曜日の処理を追加しますが、まずはhtmlで書いてみます。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>calendar</title>
<link rel="stylesheet" href="">
<style>
/*ここにスタイルを記述*/
body {
width: 275px;
}
.top {
border-bottom: 2px solid gray;
}
.top, .day {
display: flex;
align-items: flex-end;
}
.day {
justify-content: center;
}
.mm {
width: 50px;
font-size: 40px;
font-weight: bold;
}
.eng_m {
font-size: 25px;
font-weight: bold;
color: blue;
}
.YYYY {
width: 200px;
text-align: right;
font-size: 25px;
}
.week{
margin-top: 16px;
text-align: center;
font-size: 25px;
}
.dd {
font-size: 150px;
}
.nichi {
font-size: 60px;
}
</style>
</head>
<body>
<div class="top">
<div class="mm"><?php echo date("m"); ?></div>
<div class="eng_m"><?php echo date("M"); ?></div>
<div class="YYYY"><?php echo date("Y"); ?></div>
</div>
<div class="week">日曜日</div>
<div class="day">
<div class="dd"><?php echo date("j"); ?></div>
<div class="nichi">日</div>
</div>
</body>
</html>

いい感じになってきました。では、曜日部分にphpを組み込みましょう。
<div class="week">日曜日</div>
これを
<?php $week = array("日","月","火","水","木","金","土"); ?>
<div class="week"><?php echo $week[date("w")]; ?>曜日</div>
に置き換えてあげると…

ちゃんと日曜日の表示ができました。
土曜日と日曜日の色を変えてみる
カレンダー上での土曜日や日曜日といえば、色が青だったり赤だったりしますよね。ということで、それもphpで処理してみたいと思います。やり方としては土曜日の時にはcssで青を、日曜日の時には赤を指定してあげればいいはずです。なのでこんなコードを考えてみました。
.week, .day {
<?php
if (date("w") == 0) { echo "color: red;"; }
if (date("w") == 6) { echo "color: blue;"; }
?>
}
これをスタイル記述のところに突っ込んであげると

ちゃんと日曜日に赤い表示になりました。
日めくりカレンダー完成 ~全コード~
簡単カレンダーの日めくりカレンダーはこれで完成です。もし、日付がずれて表示されたりしている場合は、タイムゾーンがあっていない可能性があります。php.iniファイルなどの設定を確認してみてください。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>calendar</title>
<link rel="stylesheet" href="">
<style>
/*ここにスタイルを記述*/
body {
width: 275px;
margin: 25px auto 0;
}
.top {
border-bottom: 2px solid gray;
}
.top, .day {
display: flex;
align-items: flex-end;
}
.day {
justify-content: center;
}
.mm {
width: 50px;
font-size: 40px;
font-weight: bold;
}
.eng_m {
font-size: 25px;
font-weight: bold;
color: blue;
}
.YYYY {
width: 200px;
text-align: right;
font-size: 25px;
}
.week{
margin-top: 16px;
text-align: center;
font-size: 25px;
}
.dd {
font-size: 150px;
}
.nichi {
font-size: 60px;
}
.week, .day {
<?php
if (date("w") == 0) { echo "color: red;"; }
if (date("w") == 6) { echo "color: blue;"; }
?>
}
</style>
</head>
<body>
<div class="top">
<div class="mm"><?php echo date("m"); ?></div>
<div class="eng_m"><?php echo date("M"); ?></div>
<div class="YYYY"><?php echo date("Y"); ?></div>
</div>
<?php $week = array("日","月","火","水","木","金","土"); ?>
<div class="week"><?php echo $week[date("w")]; ?>曜日</div>
<div class="day">
<div class="dd"><?php echo date("j"); ?></div>
<div class="nichi">日</div>
</div>
</body>
</html>
まとめ ~次回は一か月の日付を表示するカレンダーに挑戦
お手軽カレンダーということで、今日の日付を表示する日めくりカレンダーを作成してみました。だいぶんそれっぽく出来たのではないでしょうか。phpでの日付関連の処理date()関数を使用することでお手軽に作成できます。是非、コピペで試してみてください。