ちょこっとIっTぇみる

個人的に気になるITネタを気分でつらつらと。

JavaScriptでGoogleカレンダーのデフォルト表示月を動的にする方法 (2

前回からものすごーく時は過ぎているのですが、続編をちゃんと書こうとおもいます。

※説明は上記前回既読を前提に書いております。

本内容の前提条件

というわけでそのjavascriptからgoogleの日付パラメータを動的に変える実装をさらっとご紹介。

1)googleカレンダーの日付パラメータに渡す javascript date.js を作成

冗長すぎるという。。m(__)m

/*
   from(yyyymm01)生成
   現在日付 > middday なら 翌月、そうでなければ当月01日を返す

*/
function getDate(midday){
        var addmonth = 1;
	var date = new Date();
	var year = date.getFullYear();
	var day = date.getDate();
        if (day > midday) {
            addmonth = 2;
        }
	var month = date.getMonth() + addmonth;

	if (month < 10) {
		month = "0" + month;
	}
	
	var strDate = year + month  + "01";
	return strDate;
}

/*
   to(yyyymm02)生成
   現在日付 > middday なら 翌月、そうでなければ当月02日を返す

*/
function getDateto(midday){
	var date = new Date();
	var year = date.getFullYear();
	var day = date.getDate();
        if (day > midday) {
            addmonth = 2;
        }
	var month = date.getMonth() + addmonth; //getMonth は 0-11を取得

	if (month < 10) {
		month = "0" + month;
	}
	
	var strDate = year + month  + "02";
	return strDate;
}

/*
   「&dates=yyyymm01/yyyymm02」を
    googleカレンダー埋め込み iframe<iframe src="https://www.google.com/calendar/embed?...."  
    のsrc属性の末尾に足しこむ。
 */
function setGoogleDates(midday) {
//alert (getDate(1));
        var midday = 12;
        var obj= document.getElementsByTagName("iframe")[0];                   // ページ内の一番最初(0個目)のiframe=googleカレンダーである場合。
        obj.src = obj.src+'&dates='+getDate(midday) + "/" + getDateto(midday); // ここで足し込む
}

あとは1)のdate.jsをサイト上に配置し、
googleカレンダーを埋め込んだHTML内で

<script type="text/javascript" src="./date.js"></script>  <*-- HTMLとdate.jsが同じ階層においてある場合 -->

とかすれば、これで完成なう。。のはず。。

自分と同じ境遇(HTML上でgoogleカレンダーを動的に表示したい。)の方がいれば。 お役に立てれば幸いでございまする。