はてなブログでプログラムを学ぼう11 カウントダウン計算の改造 javaScript
今週はモテギGP、ついに日本グランプリの週です。
ヘッダーに表示している開幕までの残り日数も僅か。
javaScriptで表示中の機能を、ちょっと改造しましょう。
やる事
- 開催中はカウントが0になるので、イベント内容に変更。
- 変更する内容はフリー走行、予選、決勝にする。
- イベント終了後2日間は終了表示。
- その後は何も表示しない。
復習
復習ソース、単純に開催日から当日を引き算している。
但し、通算秒数で結果が戻って来るので日付変換する。
-----------------------------------------------------------
//ヘッダー表示
CountDownMotegi();
//共通関数
function CountDownMotegi() {
var vxdt = new Date('2015/10/09');
var vsdt = new Date();
var vsec = vxdt.getTime()-vsdt.getTime();
var vday = Math.floor( vsec / (1000*60*60*24) );
document.write('日本グランプリ開幕まであと ' + vday + ' 日');
}
-----------------------------------------------------------
検証
結果発表
クリックしないと何も起きないよ
+++++++ ここに結果を表示 +++++++++
++++++++++++++++
結果ソース
今気が付いたのですが、dateでセットした日付に時間まで取得していて、1日ずれてました。
基準が0:00なので、-1で帳尻合うから単純に引いてます。
(業務で使うなら0:00同士の引き算に改造して使ってください)
<script type="text/javascript">// <![CDATA[
//ヘッダー表示
CountDownMotegi('2015/10/09');
//共通関数
function CountDownMotegi(indt) {
//var vxdt = new Date('2015/10/09');
var vxdt = new Date(indt);
var vsdt = new Date(); //時間まで取得する
var vsec = vxdt.getTime()-vsdt.getTime();
var vday = Math.floor( vsec / (1000*60*60*24) );
var vday = vday+1; //時間有りのため補正
var vmsg ='';
if(vday > 0){
vmsg = '日本グランプリ開幕まであと ' + vday + ' 日';
} else {
if (vday == 0){
vmsg = '日本グランプリ開幕 フリー走行日';
}else if(vday == -1){
vmsg = '日本グランプリ予選日';
}else if(vday == -2){
vmsg = '日本グランプリ決勝日';
}else if(vday == -3){
vmsg = '日本グランプリ終了';
}else if(vday == -4){
vmsg = '日本グランプリ終了';
}else{
vmsg = '';
}
}
// document.write('日本グランプリ開幕まであと ' + vday + ' 日');
document.write(vmsg);
}
// ]]></script>
以上