• 締切済み

JavaScriptで毎日カウントダウン土日祝除く

初めまして、よろしく御願いします。 JavaScriptで毎日カウントダウンをしたいと思っています。 条件1 0時から10時までカウントダウンをする(月~金) 条件2 土日祝を除く(イレギュラー用に日付指定もできる) 条件3 時間:分:秒:ミリ秒の表示にしたい 以上の条件を満たしたものを作りたいと思っています。 検索をするとカウントダウンは出てくるのですが、 これといって適合するものはなく。。 悩んでいます。 お分かりになる方がいらっしゃいましたらご教示を御願いします。

みんなの回答

  • tracer
  • ベストアンサー率41% (255/621)
回答No.2

基本的なことを組み合わせるだけでできます。 質問者さんがどこまでJavaScriptのスキルをお持ちか分かりませんが、検索の指標を参考までに回答します。 ・ifによる条件分岐 ・日時の取得 以上です。関数で言えば、たった2つだけ覚えるだけでできます。 ちなみに、JavaScriptはクライアントサイドスクリプトといって、いわゆる閲覧する各ユーザーのブラウザ(パソコン)で動作します。従って、今回のような日時をカウントダウン仕組みも、たとえばユーザーのパソコンの時計がずれていたりすると、当然WEBサイト上のカウントダウンは正確な表示をしません。参考までに。

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

>検索をするとカウントダウンは出てくるのですが、 >これといって適合するものはなく。。 カウントダウンはみな同じようなものではないでしょうか? そのまま完全にピッタリのものは、よほど一般的な要求ででもない限りはそこらに転がってはいないでしょう。 ご質問内容で、多少特殊なのは「祝祭日を除く」の部分だけではないかと思いますけれど。 祝祭日を判定する関数を作成しておいて、条件分岐で実行するかしないかを決めてあげればよいのではないでしょうか? 曜日の取得は簡単ですが、祝日は必ずしも規則性がないので各日をリストにしてしまうか、その中でも「○月の第△曜日」のような物だけは規則で入れておくかは状況によりけりかと思います。 ここの質問サイト内を検索するだけでも、読みきれないくらいの数がヒットしますし、その中には沢山のサンプルが書かれているはずです。 以下、関係の深そうなものごく一例を… (ご参考にでもなれば) <カウントダウン> http://okwave.jp/qa/q7109072.html http://okwave.jp/qa/q6584309.html http://okwave.jp/qa/q2719903.html <日にちによるカウントダウン> http://okwave.jp/qa/q6576027.html http://okwave.jp/qa/q6731285.html <祝祭日の取得> http://okwave.jp/qa/q4300975.html http://okwave.jp/qa/q5127893.html http://okwave.jp/qa/q6531932.html

hiyokocyan0312
質問者

お礼

ありがとうございます。 こちらを参考にもう一度チャレンジしてみます。 早々の回答ありがとうございました。

関連するQ&A

  • javascriptでカウントダウンタイマー

    「○時間○分○秒○」 のように、時間から秒以下までを カウントダウンするjavascriptを探しているのですが、 「○日○時間○分○秒○」 のように、日付からカウントダウンする javascriptしか見つけることができません…。 時間からカウントダウンを開始できる javascriptを教えて頂けないでしょうか。 可能であればキャンペーン開始前、終了後に ひとこと設定できると嬉しいです。 (例えば「キャンペーンは終了しました。」など) よろしくお願い致します。

  • javascriptを用いたカウントダウンタイマ-

    javascriptを用いた、カウントダウンタイマーの方法を教えて頂けないでしょうか? 【午前9時からカウント開始】(あと”9時間59分59秒")       ↓ 【午後19時に終了】(あと”0時間00分00秒") ※毎日繰り返し (午後19時から午前9時までの間は、何かコメントを表示させておく。) このようなカウントダウンも出来るものなのでしょうか? 超初心者ですが、独学で勉強したくて色々見てますが…、難しくてなかなか…。 どなたか、お知恵を貸して頂けたら、幸いです。 宜しくお願いします。

  • 毎日日付の変わるタイミングをカウントダウンした

    全くのJAVA初心者です、すみません。 ウェブで色々調べましたが全然やりかたがわからず途方にくれています・・・ WEBページを作っているのですが、 日付変更のタイミングを、カウントダウン表示して、 毎日、それが自動で更新されるような日付カウントダウンをつくりたいのです。 ○○日まで、あと○○時間○○秒○○! というのはウェブで調べられたのですが 【今日の日付変更まであと○○時間○○秒○○!】 のような、日付をカウントして、日付がかわったらまた自動的に 【今日の日付変更まであと23時間59秒99!】 というように、日付が変わったら、その後はまた 自動的にカウントダウンが0からカウントするように したいのです。 ウェブで調べましたがどうしても見つけられませんでした。 全くの初心者で、やりかたがぜんぜんわからずとても困っています・・ お忙しいところ恐縮ですが、やりかたがおわかりになるかた、 どなたか教えていただけたら、本当にうれしいです・・・ 手も足もでません・・・ すみません、どうかよろしくお願いします・・・

  • javascript カウントダウンタイマーについて

    下記のサイトのようなカウントダウンタイマーを作成したく 色々と検索してるのですが全然見つかりません。 http://www.countdownbooster.com/ このサイトのように100分の1秒まで表示させて 例えば期限を明日と数字で設定するのではなく サイトに訪れてから●日後や●分後を期限にしたいのです。 尚且つクッキーで期限が切れたら何度訪れても終了!と表示させたいのですが可能でしょうか? 下記のサイトが訪れてから1週間後に終了と表示されるサイトです。 http://www.successlab.jp/u25/full/ ※但し、100分の1秒まで表示されてません。 例えば7月31日と指定して 残り8日と●時間●分●秒●と 表示出来るJavaScriptはあるのですが 上記のような全てを満たすJavaScriptがありません。 ご存じの方がいたら是非、力をお貸し下さいませんか? 宜しくお願い致します。

  • javascriptでカウントダウンタイマーを…

    javascriptを用いた、カウントダウンタイマーの方法を教えて頂けないでしょうか? 【午前9時からカウント開始】       ↓ 【午後19時に終了(0)】 ※毎日繰り返し このようなカウントダウンも出来るものなのでしょうか? 超初心者ですが、独学で勉強したくて色々見てますが…、難しくてなかなか…。 どなたか、お知恵を貸して頂けたら、幸いです。 宜しくお願いします。

  • カウントダウンについて

    JavaScriptでカウントダウン表示をしたいのですが、この質問掲示板並びに、その他色々検索してみましたが例えば「2007年○月△日まであと■日」というように日数の類のものしか見当たりません。私のやりたい事は「2007年●月▲日x時まであと□時間」というように指定日だけでなくx時まで指定できて、しかも「あと□時間」のところを1時間間隔でカウントダウンさせたいのです。JavaScriptに関してはあまり知識はないのですが、ヒントが得られる参考ページなどがあればと思っています。どうぞよろしくお願い致します。

  • javascriptでカウントダウンタイマー

    お世話になります。 JavaScriptでカウントダウンをWEBに表示させたいと思っています。 WEBで見つけた3種類を試してみました。 下記、例A 締め切りを1カ月後に指定 <!-- the_day = new Date(2008,11,8) function countdown() { today = new Date() days = Math.floor((the_day-today)/(24*60*60*1000)) hours = Math.floor(((the_day-today)%(24*60*60*1000))/(60*60*1000)) minutes = Math.floor(((the_day-today)%(24*60*60*1000))/(60*1000))%60 seconds = Math.floor(((the_day-today)%(24*60*60*1000))/1000)%60%60 if((the_day - today) > 0){ document.f.days.value = days+"日"+"と"+hours+"時間"+minutes+"分"+seconds+"秒" }else{ document.f.days.value = "締め切りました" } tid = setTimeout('countdown()', 1000) } // --> <body> <FORM NAME=f> <INPUT TYPE=text SIZE=45 NAME=days> </FORM> <SCRIPT Language="JavaScript"> countdown(); </SCRIPT> </body> 以上 ブラウザでの表示「60日と5時間50分18秒」 残り、30日と表示されるべきところが、60日と表示されます。 PCの日付は合ってますし、他の者の環境でも同じ日にちでした。 そこで質問です。 1)試した3種類とも同様の日にちになりました。ということは間違いではなく、何か理由があるのですよね? 2)<days>を、(-30)にすれば数字的には合うのですが、問題ないでしょうか?   days = Math.floor((the_day-today)/(24*60*60*1000))-30 3)「22時締め切り」にしたいのですが、時間の指定は出来ないでしょうか?  初歩以前の質問で申し訳ありませんが、正しい書き方を教えていただければ、嬉しいです。 どうぞよろしくお願い致します。

  • ブラウザの「戻る」を押しても有効なカウントダウン

    ブラウザの「戻る」を押しても有効なカウントダウン PHPで取得した時間を使ってカウントダウンを表示させるプログラムに 挑戦中なのですが、今の知識で解決出来ない問題が出ているのでご質問させて 頂きました。 PHPで取得した時間が45秒だった場合、残り45秒からカウントダウンが 始まります。javascriptにこの「45」を読み込ませて、45秒から 1秒ずつリアルタイムに秒が減っていくという形です。 0秒が過ぎたら-1秒、-2秒と進んでいきます。 下記のスクリプトで、それが実現出来ました。 ---------------------- <script type="text/javascript"> <!-- var phpsecond=<?php print date(s) ?>; var countSecond=60; var nowSecond=second; function countdown(){ document.getElementById('countdown').innerHTML=countSecond-nowSecond; nowSecond++; setTimeout('countdown()',1000); } //--> </script> </head> <body onload="countdown()"> ----------------------- ただ問題があって、ずっとこのページを見ている状態であれば 大丈夫なのですが、 ページを移動させた後、ブラウザの「戻る」でこのページに戻ると、 移動していた間の時間が止まってしまい、 ページを移動する直前の秒からカウントダウンが再開してしまいます。 これを何とか、ページに戻ってきた時にすぐ正しい秒を表示し直すように 命令したいのですが可能でしょうか? 私なりに考えたのが、 PHPの時間とjavascript時間との差をjavascriptに変数で覚えさせれば 常に正しい時間が表示出来るのかなと思いました。 良い記述方法がございましたら、ご教授頂けますと幸いです。 ※それから、このページに戻った際、カウントダウンが0秒を切っていた場合は ページを自動的にリロードするようにしたいです。 宜しくお願い致します。

  • javascriptについて

    javascriptについて 24時間を自動更新で無数回繰り返しカウントダウンする方法。 javascriptで指定した時間まで1回だけカウントダウンするスクリプトが作れることは知ってます。 「○○日まで、あと何時間何秒何」を1回カウントダウンするというのではなく、「明日まで(あるいは今日の終わりまで)を24時間形式でカウントダウンし、O時間O分0秒になったら、また、その次の日まであと24時間0分0秒を永遠に繰り返す」スクリプトを探しています。 つまり、24時間を自動更新で無数繰り返しカウントダウンする方法を探しています。 ※コードを貼っていただければ非常にうれしいです。 ちなみに、こちらの方も同じような質問を「教えて!goo」と「エキサイトみんなの相談広場」でされたようですが、結局どちらも残念な結果に終わっています。 教えて!goo:http://okwave.jp/qa/q6584309.html エキサイトみんなの相談広場:http://soudan.qa.excite.co.jp/qa6584309.html ※是非、皆様の力を貸していただきたい次第です。

  • javascriptによるカウントダウンタイマー制作

    只今、javascriptでカウントダウンタイマーを制作しています。 ボタンをクリックすると動いているカウントダウンタイマーに10秒追加するようにしたいのですが、いろいろためしてみたのですがうまくいきません。散々悩んでいるうちに2日もたってしまいました。 御存じの方、いらっしゃいましたらどうか教えていただけませんでしょうか? <script type="text/javascript"> <!-- if (window.attachEvent){ window.attachEvent('onload', showday); }else { window.addEventListener('load', showday , false); } function settime1(){ var year =2011; //年 var mon =4; //月 var day =2; //日 var time =20; //時 var min = 20; //分 var sec = 15; //秒 var xday = new Date(year,mon-1,day,time,min,sec); //基準になる年月日 return xday; } function showday() { var nowday = new Date(); var xday = new settime1(); var passtime= xday.getTime()-nowday.getTime(); //今から基準になる日までの経過時間 1/1000秒単位 var cnt_day = Math.floor(passtime/(1000*60*60*24)); // カウントダウン表示 (日にち) の取得 passtime = passtime -(cnt_day*(1000*60*60*24)); // 経過秒から(日にち)を引く var cnt_hour = Math.floor(passtime/(1000*60*60));// カウントダウン表示 (時) の取得 passtime = passtime -(cnt_hour*(1000*60*60)); // 経過秒から(時)を引く var cnt_min = Math.floor(passtime/(1000*60)); // カウントダウン表示 (分) 取得 passtime = passtime -(cnt_min*(1000*60));// 経過秒から(分)を引く cnt_sec = Math.floor(passtime/1000);// カウントダウン表示 (秒) 取得 passtime = passtime -(cnt_sec*(1000)); // 経過秒から(秒)を引く var cnt_millisec = Math.floor(passtime/10); // カウントダウン表示 (100/1秒) 取得 // 分、秒、ミリ秒を2桁で表示する。 if(cnt_min<10){cnt_min = '0' + cnt_min;} if(cnt_sec<10){cnt_sec = '0' + cnt_sec;} if(cnt_millisec<10){cnt_millisec = '0' + cnt_millisec;} if((xday - nowday) > 0){ document.tbox.dspday.value = cnt_hour+":"+cnt_min+":"+cnt_sec; }else { document.tbox.dspday.value = "終了" } timerID = setTimeout('showday()', 1000); } </script> </head> <body> <form name="tbox" action="#"> <input name="dspday" id="dspday" type="text" style="position:absolute; top:475px;left:55px; font-size : 25px; z-index:3; color:navy; background:transparent; border-width : 0px ;border-style : solid;font-weight :bold ;" size="45" /> <input name="dspdaybtn" type="button" onClick="" value="10秒追加" style="position:absolute; top:510px; left:70px; z-index:4;"/> </form>

専門家に質問してみよう