カウントダウンプログラムを使用しているのですが、
毎日0時になったらカウントダウンがスタートするように改造したく思います。
(カウントダウンが始まる前は非表示にしておきたいです。)
使っているソースは以下です。
お詳しい方、教えていただけませんでしょうか。
よろしくお願いいたします!
-----------------------------------
<!-- カウントダウン --><DIV id="myCwww"></DIV>
<SCRIPT language="JavaScript"><!--
function myCountd(){
myHyouji = 1; //0で秒数、1で日数含む形式
mySetname = "セール終了"; //目標時間の名称
mySetyear = 2011; //目標年
mySetmon = 3; //目標月
mySetday = 6; //目標日
mySethour = 23; //目標時
mySetmin = 59; //目標分
mySetsec = 59; //目標秒
myTime = new Date();
mySettime = new Date(mySetyear,mySetmon - 1,mySetday,mySethour,mySetmin,mySetsec);
myTimeth = (Math.floor( ( myTime.getTime() - mySettime.getTime() ) / 1000) ) * -1;
if(myTimeth > -1){
myChunts = 0;
} else {
myChunts = 1;
myTimeth = myTimeth * -1;
}
if(myHyouji == 1){
var myWarid = 0;
var myWarih = 0;
var myWarim = 0;
if(myTimeth > 86399){
myWarid = myTimeth / 86400;
myWarid = Math.floor(myWarid);
myTimeth = myTimeth - (86400 * myWarid);
}
if(myTimeth > 3599){
myWarih = myTimeth / 3600;
myWarih = Math.floor(myWarih);
myTimeth = myTimeth - (3600 * myWarih);
}
if(myTimeth > 59){
myWarim = myTimeth / 60;
myWarim = Math.floor(myWarim);
myTimeth = myTimeth - (60 * myWarim);
}
myTimeth = myWarid + "日と" + myWarih + "時間" + myWarim + "分" + myTimeth;
}
if(myChunts == 0){
document.getElementById("myCwww").innerHTML = mySetname + "まで、あと" + myTimeth + "秒です";
} else {
document.getElementById("myCwww").innerHTML = "セール終了いたしました。";
}
}
setInterval("myCountd()", 1000);
// --></SCRIPT><!-- カウントダウン -->
No.6ベストアンサー
- 回答日時:
#4、#5です。
>必要となる実行用のタグをお教え願えますでしょうか
#5に記した通りですので、実行用(?)のタグ(?)は必要ありません。
ほとんどご質問文のものと同型なので、説明もいらないかと思ったのですが…
(divのidの「myCwww」ってのだけはわからない名前なので変えてますけど)
#4で書いたように、そもそもが、想像だらけの当たるも八卦のものなので、ご質問の回答になっているのかどうかも怪しいです。
以下、テストしたソース。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head><title>sample</title>
<meta http-equiv="Content-Script-Type" content="text/javascript">
</head>
<body>
<div id="countdown"></div>
<script type="text/javascript">
<!--
(function(){
var base = "2011/01/01"; //表示/非表示の基準日
var comment = "定型文"; //非表示時の定型文
var id = "countdown"; //表示用要素のid
var element = document.getElementById(id);
var divide = function(r, n){
var tmp = r.count/n | 0;
var v = r.count - tmp * n;
r.count = tmp;
r.time.unshift( (v<10?"0":"") + v);
}
var timer = function(){
var today = new Date();
var n_day = new Date(today.getFullYear(), today.getMonth(), today.getDate()+1);
var def = (today - new Date(base))/24/60/60/1000 | 0;
var remain = { time:[], count:(n_day-today)/1000 | 0 };
if(def % 2){
element.innerHTML = comment;
def = remain.count - 30;
if(1>def) def = 1;
setTimeout(timer, def * 1000);
} else {
divide(remain, 60);
divide(remain, 60);
divide(remain, 24);
element.innerHTML = remain.time.join(":");
setTimeout(timer, 500);
}
}
timer();
})();
//-->
</script>
</body>
</html>
地震などあり、せっかくいただいた回答へのお返事が
おくれてしまってたいへん失礼いたしました!
毎回とても助かっています、本当にありがとうございました。
No.5
- 回答日時:
#4です。
> 教えていただいたものをそのまま貼り付けると
>何も出てこなかったのですが
>他にも記述する必要はありますでしょうか。
どのような貼り付け方をなさったのかわかりませんが、回答に提示したのはスクリプト部分だけです。
最低限のHTML構成と、表示対象の要素(およびそのidとスクリプト内のidを一致させておく)が必要です。
あたりまえですが、スクリプトは<script>タグの中に。
実行は、表示用の要素が読み込まれてから行なうようにしてください。
(そうでないと、表示するための要素が無いためエラーになります)
日付の変わり目などの全体の検証は行なっていませんが、基本的な動作の確認はfx、IEで行なっています。
ご回答ありがとうございます!!!
HTMLとCSSしかわからないもので・・・
記述する場所、最低限のHTML構成はOKです。
必要となる実行用のタグをお教え願えますでしょうか。
たびたびの質問で申し訳ございません・・・
No.4
- 回答日時:
質問の内容がさっぱり把握できてませんけれど、
>1日おきに0:00~23:59のカウントダウンを行い、
「一日おき」というのは隔日ということと解釈。表示する日と、表示しない日が交互にあるということ。
カウントダウンは、時刻が0:0:01だったら「23:59:59」で、段々減少し23:59:59に0:0:01を表示して、24:0:0(0:0:0)に終了すると解釈。
要は、固定時刻(午前0時)へ向けてのカウントダウンと解釈。(固定日の時刻へのカウントダウンではない)
>カウントダウン終了後、また、翌日はカウントダウン開始前に
>指定の定型文を表示させたく思います
時間を表示していないときは、常に「指定文」が表示されていればよいと解釈。
(カウントダウン終了時も同じ。指定文が表示される)
・・・と勝手に解釈すると、最初の質問文やご提示のスクリプトとはだいぶ違うような気もしますが
当たるも八卦で、こんなかんじ?(未検証)
(全角空白は半角に)
(function(){
var base = "2011/01/01"; //表示/非表示の基準日
var comment = "定型文"; //非表示時の定型文
var id = "countdown"; //表示用要素のid
var element = document.getElementById(id);
var divide = function(r, n){
var tmp = r.count/n | 0;
var v = r.count - tmp * n;
r.count = tmp;
r.time.unshift( (v<10?"0":"") + v);
}
var timer = function(){
var today = new Date();
var n_day = new Date(today.getFullYear(), today.getMonth(), today.getDate()+1);
var def = (today - new Date(base))/24/60/60/1000 | 0;
var remain = { time:[], count:(n_day-today)/1000 | 0 };
if(def % 2){
element.innerHTML = comment;
def = remain.count - 30;
if(1>def) def = 1;
setTimeout(timer, def * 1000);
} else {
divide(remain, 60);
divide(remain, 60);
divide(remain, 24);
element.innerHTML = remain.time.join(":");
setTimeout(timer, 500);
}
}
timer();
})();
この回答への補足
補足 教えていただいたものをそのまま貼り付けると
何も出てこなかったのですが
他にも記述する必要はありますでしょうか。
たいへんお手数ですが教えていただけますでしょうか。
よろしくお願いいたします!
fujillinさん、今回もご回答いただき本当にありがとうございます!!!
説明がうまくできずにすみません・・
教えていただいたものをさっそく試してみます!
No.3
- 回答日時:
"もう一つタイマー"を作って現在時刻を確認し、0時になれば
setInterval("myCountd()", 1000);
を実行、"もう一つタイマー"を停止する。
というのでどうでしょうか。
この回答への補足
教えていただいたものをそのまま貼り付けると
何も出てこなかったのですが
他にも記述する必要はありますでしょうか。
たいへんお手数ですが教えていただけますでしょうか。
よろしくお願いいたします!
talooさん、ご回答ありがとうございます!!!
勉強不足で申し訳ないのですが、
ソースコード教えていただけますでしょうか。
今回のプログラムもサンプルを少し変更しただけで
Javascriptの知識がありません。
たいへんお手数ですが、タイマーが可能でしたらやり方をお教え願います。
すみませんが、よろしくお願いいたします!
No.2
- 回答日時:
私が、ご質問の意味を正しく解釈してないのかも知れませんが
あなたの意図してる事をクライアントサイトのJavascriptのタイマー?を使って実現する事は不可能です。サーバー側のプログラムを作る必要があります。Javascriptのタイマーはそのjavascriptが動いているページを閉じると消滅するからです。
もちろん、ページが表示された時に現在日時と現在時間を取得して、その時点からのオフセットでカウントダウン開始時刻と修了時刻を何らかの規則や、予め用意しておいたデータで決めて、カウントダウン開始時刻前なら定型メッセージ、開始時刻を過ぎているならカウントダウンを開始させるのは出来ます。でもそれは、タイマーの処理じゃ無いです。
ご回答ありがとうございます!
1日おきに0:00~23:59のカウントダウンを行い、
カウントダウン終了後、
また、翌日はカウントダウン開始前に
指定の定型文を表示させたく思います。
これはjavascriptでは不可能でしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript コードレビューをお願いします。 1 2022/07/16 05:38
- JavaScript ソースコードのいじる場所が分かりません。 1 2022/12/23 02:06
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- JavaScript スマフォではボタンを表示させたくない 2 2023/01/20 14:26
- JavaScript セレクトボックスで配列を呼び出したい。 1 2022/07/08 20:14
- JavaScript jsで、配列内の文章を改行する際どのようにすればいいですか。 3 2022/07/05 20:40
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
jQueryのload()を使用して外部...
-
google apps scriptの終了のさせ方
-
C#OpenCv V4にのエラーに関する...
-
Javaで避けるゲームを作ってい...
-
【JavaScript】数当てゲームを...
-
C#で、ContextMenuStripに動的...
-
javaScript textareaの一行あた...
-
翌月を取得するGASが分かりません
-
ASP.NETのコントロールの値をJa...
-
javascriptにお詳しい方に質問...
-
商品コードを入力で、商品名、...
-
JavaScriptで決まった「時刻」...
-
ホームページの最終更新日を他...
-
C# 演算 奇数と偶数 表現の仕方
-
特定のclassを表示、非表示にする
-
なぜmatchメソッドがエラーにな...
-
javascriptでカウントダウンタ...
-
ASP.NET MVCでObjectをjsに渡す
-
idを使わずにonclickで自身の要...
-
Linux バイナリ実行できない "...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
google apps scriptの終了のさせ方
-
C#OpenCv V4にのエラーに関する...
-
メールフォームの日付入力フォ...
-
GASでundefinedエラーが出ます
-
ジェネレーターの作り方
-
GASでGoogleフォームの自動返信...
-
なぜmatchメソッドがエラーにな...
-
翌月を取得するGASが分かりません
-
ローカルにあるファイルを検索...
-
HTMLで作った時報アプリが動き...
-
ASP.NETのコントロールの値をJa...
-
C# 演算 奇数と偶数 表現の仕方
-
html javascript リンク先アド...
-
gas スプレッドシートがアクテ...
-
javascriptでテーブルに追加し...
-
VSCODE[Python]の設定について
-
JavaScriptで決まった「時刻」...
-
ASP.NET MVCでObjectをjsに渡す
-
イベントが初めの一回しか起き...
-
jqGridについて
おすすめ情報