• 投稿日 2021.03.13
  • 最終更新日 2023.03.27

広告・PRあり

JSとjQueryで指定した曜日までのカウントダウンをつくってみる(わくわく華金ver.)

JSとjQueryで指定した曜日までのカウントダウンをつくってみる(わくわく華金ver.)

パンダくん
jQueryで特定曜日までのカウントダウンってどうやって作るんだろう…
むったん
ゴリゴリ書いていくのもありだけど、すごく簡単に…しかもフリップ式のカウントダウンを見つけたから教えてあげるよ!

ども、むったん(@6ttan)です。

最近お仕事でJavaScriptを書く事が多くて、ゴリゴリに書くのは苦手ですが…JSって思い通りに動くとやっぱり楽しいですよね☺️
そして一緒にお仕事している方がjQueryではなく、JSをゴリゴリ書くもんで「やっぱり脱jQueryの流れなんだろうな…」とそちらに基準を合わせようと必死です。

JSでゴリゴリ書いてみた

今回はタイトル通りわくわく華金ver.ということで、今の日時から直近(未来)金曜日までのカウントダウンを作ってみました。
私はお酒は飲めないけど、酒のつまみとなる物が大好きなので緑茶片手につまみを食べて、みんなと話をする時間が大好きです❤️

まぁ、こんなご時世ですから…「華金うぇーーい!」はまだできないですけど、早くうぇーいしたいものです。

さて、そんなわくわく華金を「毎週金曜日18:30」と仮定して、今この瞬間から金曜日の18:30まであと何日何時間何分何秒あるのかカウントダウンします。
ちなみに金曜日の18:30を過ぎたら、翌週金曜日の18:30までのカウントダウンを開始します(気持ち前のめりw

コード&デモ

まずはコードとデモです。

See the Pen JSで華金までのカウントダウン(18:30退社) by むったん (@6ttan) on CodePen.

コードのポイント

まず最初に華金(=お仕事終了)時間をhour, minute, secondに代入します。
次に1秒ごとに時間の表示を変更したいので、intervalを宣言しておきます。
※のちにsetIntervalで使用します。

またtargetWeekの5は金曜日を指しています。
0=日曜日 〜 6=土曜日 となっております。

function checkComplete ()ではメインの処理を行っていて…
直近金曜日(5)より今日の曜日の数が大きいか、同じか、少ないかによってdays部分の計算を変えています。

例えば、今日が金曜日(5)だったとして18時30分01秒の場合、カウントダウンは7days23:59:59とならないといけないのですが、39行のままだと0days23:59:59という永遠に華金が来ないループに陥ります😭

なので、function diffTimeClac ()で今の時間金曜日の18:30:00より大きくなったらflagをtrueにして、先ほどのif文内でflagがtrueだったらdaysに7を代入する…というようにしています。
ちなみに土曜日になってしまえば、金曜日(5)より土曜日(6)の方が大きいので、また計算してdaysに代入するようにしています。

…日付から計算するより、getDay()の数字を計算した方が残日数出すのは早いかなと思ったのですが…もっと簡単なやり方ってあるのかな🤔

toDoubleDigitsの部分は一桁の数字の場合は0を頭につけて桁を合わせるゼロパディングという方法です。

jQuery plugin 「Flip counter」でやってみた

次は、Flip counterというjQuery pluginで華金までをカウントダウンしてみました。
導入も設定も超ラクだし、見た目がフリップ時計でおしゃれ✨
ちょっとした物で使うくらいなら、上みたいにゴリゴリ書かなくてもこっちで済ませていいかも…と思ってしまうレベルでした。

ダウンロード&準備

まずはFlip counterのサイトのDownload NowからファイルをDLしてきます。
DLしたらdist/flip.min.cssdist/flip.min.jsを適宜使用するディレクトリに移動してください。
移動したらhead内にflip.min.css</body>前にflip.min.jsを書いてください。

詳しくはSetupをご覧ください。

コード&デモ

次はコードとデモです。

See the Pen Flip couter(jQuery) every friday at 18:30 by むったん (@6ttan) on CodePen.

サンプルをそのまま持ってきて、ちょっと色を変えただけでこの出来栄え✨
そして華金18:30までのカウントをするためにevery friday at 18:30と書き換えただけでこれができてしまうのは凄いよ!!!

他にも時計、イベントカウントダウン、ストップウォッチ、数字以外の文字を見せたりもできる万能物!
色々試してみてください。

…手軽すぎてコードの説明する事が全くなかったw

About Me

むったん
フロントエンドエンジニア | webデザイナー | ブロガー

日々webサイト制作などを行っているフリーランスです。
ブログでは制作の備忘録からゲーム、愛犬トイについて書いています。
お仕事のご依頼はお問い合わせからお願いします。