#やりたいこと
毎日指定時間内だけ表示されるコンテンツを作りたいです。
初心者でネットでいろいろ調べて、日時を含む期間で表示にすることはできました。
しかしそれでは毎日ではなく1度非表示になったら終わりなので困っています。
作りたいものとしては、公共施設によくある「○○会議室 19:00~ ○○○○祭り運営 会議」のようなディスプレイや駅や空港の次の列車・便の時間表記みたいなのを作りたいです。
毎日時間が決まっているため、永久的に自動で該当時刻のみ表示させたいです。
#前提
わがままで申し訳ありませんが、以下のコードのように、html上のそれぞれで時間を指定できるやり方が、ベストです。
いくつもの時間を大量に指定し更新をするので同じコードをその分大量に用意するのは現実的でなく、更新が不可能だから。
一応参考にしたサイトです。
jQueryで期間限定など日時指定表示で要素を表示・非表示と切り替えたい!
#コード
jQuery
1$(function(){ 2 setInterval(function(){ 3 $(document).ready(function() { 4 $(".view_timer").each(function(index, target) { 5 var startDate = $(this).attr("data-start-date"); 6 var endDate = $(this).attr("data-end-date"); 7 var nowDate = new Date(); 8 if (startDate) { 9 startDate = new Date(startDate); 10 } else { 11 startDate = nowDate; 12 } 13 if (endDate) { 14 endDate = new Date(endDate); 15 } 16 if (startDate <= nowDate && (!endDate || nowDate <= endDate)) { 17 $(this).show(); 18 } else { 19 $(this).hide(); 20 } 21 }); 22 },4000); 23 }); 24}); 25
HTML
1<span class="view_timer" data-start-date="2020/2/1 0:00" data-end-date="2020/2/6 16:50"> 2 <div class="info"> 3 <p>表示したいコンテンツ</p> 4 </div> 5</span>
data-start-date="2020/2/1 0:00" data-end-date="2020/2/6 16:50" を
data-start-date="0:00" data-end-date="16:50" のように出来ませんか?
よろしくお願いします。
#追記
ネットで調べると、時間の取り出し方は書いてあったのですが、それの使い方がいまいちわかりませんでした。
適当に書いてみたのを載せておきます。
エラーはUncaught ReferenceError: nowDatetime is not definedですが、そもそも記述方法間違えていると思いますので...
jQuery
1$(function(){ 2 setInterval(function(){ 3 $(document).ready(function() { 4 $(".view_timer").each(function(index, target) { 5 var hour = nowDatetime.getHours(); 6 var minute = nowDatetime.getMinutes(); 7 var second = nowDatetime.getSeconds(); 8 var startDate = $(this).attr("data-start-date"); 9 var endDate = $(this).attr("data-end-date"); 10 var nowDate = ("minute+second"); 11 if (startDate) { 12 startDate = new Date(startDate); 13 } else { 14 startDate = nowDate; 15 } 16 if (endDate) { 17 endDate = new Date(endDate); 18 } 19 if (startDate <= nowDate && (!endDate || nowDate <= endDate)) { 20 $(this).show(); 21 } else { 22 $(this).hide(); 23 } 24 }); 25 },4000); 26 }); 27});
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/08 10:48
2020/02/08 11:23
2020/02/08 12:01
2020/02/08 12:05
2020/02/08 12:15
2020/02/08 19:33
2020/02/08 23:18
2020/02/08 23:39
2020/02/09 10:08