プロが教える店舗&オフィスのセキュリティ対策術

Javascriptでホームページにカウントダウンを設置しょうと思っているのですが…
やはり、こったモノをと本などを買って勉強しています。
そこでお尋ねしたいのですが、残り ○日○時間○分○,○○秒といったように
○,○○秒というのはできるんでしょうか?よろしくお願いします。

A 回答 (2件)

> ○,○○秒



確認ですが、このカンマって小数点ですよねこの場合?
だとしたら、こんな感じになるでしょうか……。
中の変数の値は適宜調節してください。
あと、見るマシンによっては激重で不満爆発になるやもしれませんので注意。

<HTML>
<HEAD>
<TITLE>かうんとだうん♪</TITLE>
<SCRIPT language="JavaScript">
<!--
var timerID = 10;
var KIZAMImilliSec = 33; // 1000分の33秒ごとにカウント

var year = 2010;
var month = 5;
var day = 1;
var hour = 0;
var minute = 0;
var second = 0;
origDate = new Date;
origDate.setYear(year);
origDate.setMonth(month-1);
origDate.setHours(hour);
origDate.setMinutes(minute);
origDate.setSeconds(second);


function putValue()
{
nowDate = new Date;
var restMilliSec = origDate.getTime() - nowDate.getTime();
if(restMilliSec > 0){
var restYear = Math.floor(restMilliSec / (1000*60*60*24*365));
var rest = "" + restYear + "年 ";
restMilliSec -= restYear*1000*60*60*24*365;

var restDay = Math.floor(restMilliSec / (1000*60*60*24));
rest += "" + restDay + "日 ";
restMilliSec -= restDay*1000*60*60*24;

var restHour = Math.floor(restMilliSec / (1000*60*60));
rest += "" + restHour + "時間 ";
restMilliSec -= restHour*1000*60*60;

var restMinute = Math.floor(restMilliSec / (1000*60));
rest += "" + restMinute + "分 ";
restMilliSec -= restMinute*1000*60;

var restSecond = Math.floor(restMilliSec / 1000);
restMilliSec -= restSecond*1000;
rest += "" + restSecond + "秒" + restMilliSec;
document.dummy.textbox.value = "" + rest;
}else{
document.dummy.textbox.value = "おめでとう♪";
}

clearTimeout(timerID);
timerID = setTimeout("putValue()", KIZAMImilliSec);
}
// -->
</SCRIPT>
</HEAD>
<BODY onLoad="putValue()">
<SCRIPT language="JavaScript">
<!--
document.write(year + "年" + month + "月" + day + "日");
document.write(hour + "時" + minute+ "分" + second + "秒");
document.writeln("まで あと……");


// -->
</SCRIPT>

<FORM name="dummy">
<INPUT type="text" name="textbox" size="50">
</FORM>
</BODY>
</HTML>
    • good
    • 0
この回答へのお礼

大変親切に回答して頂き感謝いたします。

お礼日時:2001/04/03 10:59

結論から先にいいますと、おそらく「原則的にはできない」と思います。


カウントダウンを作るのにはDateオブジェクトから時間を取り出しますよね。でもそのメソッドには"○,○○…"を取り出すものがありません。なのでシステム的に表現することはできません。

ただ、この方法を使えばできそうな気もするんですが。(↓)
Dateオブジェクトから",○○"の部分を取り出すことはできないのでただの変数(henと仮定)を利用し、1秒間に9回カウントしてはまた0に戻す関数を作ります。henを"."をはさんで"秒"の変数にくっつけます。(←○.○秒といったように)
この一連の動作をタイマーにセットして1秒間に10回カウントダウンの表示を更新します。10回目にはDateオブジェクトからの"秒"が更新されhenの値も0に戻るので、傍目にはミリ秒までカウントしているようにも見えます。
ただ実際に試したことがないので(今思いついただけです)、机上の絵空事に終わるかもしれませんが。
    • good
    • 0
この回答へのお礼

素早い回答有り難うございました。

お礼日時:2001/04/03 11:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!