GHWEB06.GRASSHOPPER

jQueryで縦型カレンダーを作成

  • Category:Web関連
  • Web関連の備忘録

カレンダーカレンダーの表を作る際、曜日の指定が面倒でしたのでjQueryでカレンダーを作成してみました。

jQueryは、Google Hosted Libraries の バージョン1.11.1 を使用。★バージョン2.1.1でも動作確認。

スクリプトとサンプル

日付と曜日を出す場合

$(function() {
var today = new Date();
var myYear = today.getFullYear();
var myMonth = today.getMonth();
var lastday = new Date(myYear, myMonth+1, 0);
lastday = lastday.getDate();
var wak = "";	
for (var i=1 ; i<=lastday ; i++){
xday = new Date(myYear, myMonth, i);
xdays = xday.getDay();
weekjp = new Array("日","月","火","水","木","金","土");	
weeks = weekjp[xdays];
wak += "<tr>\n";
wak += "<th>"+weeks+"</th>\n";
wak += "<td align='center'>"+i+"</td>\n<td></td>\n";
wak += "</tr>\n";
}
$("#listbox").append(wak);
});

サンプル

日付と曜日とコメントを出す場合

配列からコメント項目を読み込ませてみました。
無駄に長くなっている気がします・・・。

$(function() {
var ary =[
    ["1","1日です"],
    ["4","4日です"],
    ["9","9日です"],
    ["15","15日です"],
    ["27","27日です"]
]
var today = new Date();
var myYear = today.getFullYear();
var myMonth = today.getMonth();
var tuki = myMonth +1+"月のカレンダー";
var lastday = new Date(myYear, myMonth+1, 0);
lastday = lastday.getDate();
var topics = new Array(); 
for (i = 0; i <= lastday; i++) {
topics[i] = "";
}
for (i = 0; i < ary.length; i++) {
topics[ary[i][0]] = ary[i][1];
}
var wak = "";			
for (var i=1 ; i<=lastday ; i++){
xday = new Date(myYear, myMonth, i);
xdays = xday.getDay();
weekjp = new Array("日","月","火","水","木","金","土");	
weeks = weekjp[xdays];
wak += "<tr>\n";
wak += "<th>"+weeks+"</th>\n";
wak += "<td align='center'>"+i+"</td>\n";
wak += "<td>"+topics[i]+"</td>\n";
wak += "</tr>\n";
}
$("#listbox2").append(wak);
$("#tuki").append(tuki);
});

サンプル

PHP で作成した場合

ついでにPHPで縦型カレンダーを作成してみました。
一手間必要 ですが、WordPress等に組込んで投稿名を表示させても良いですね。

<?php
$year = date('Y');
$month = date('m');
$last_day = date("j", mktime(0, 0, 0, $month + 1, 0, $year));
echo "<table class='schedule'><tr><th>曜日</th><th>日付</th><th>詳細</th></tr>";
for ($i = 1; $i < $last_day + 1; $i++){
$week = date("w", mktime(0, 0, 0, $month, $i, $year));
$weekjp_array = array('日', '月', '火', '水', '木', '金', '土');
$weekjp = $weekjp_array[$week];
echo "<tr>\n<th>".$weekjp."</th><td align='center'>".$i."</td>\n<td></td>\n</tr>\n";
}
echo "</table>\n";
?>

サンプル

  • 掲載: