2016-04-26 4 views
5

Javascriptを使用して特定の日付の会社の時間に基づいてオープンまたはクローズを表示しようとしています。私はWordPressでListifyというテーマを使用していますが、顧客はそのビジネスをリストできます。彼らは週の毎日のために彼らの営業時間を入れるオプションがあります。私はスパン内に格納されているそのデータを使用して、ビジネスが開いているか閉じているかを判断し、それを表示できるようにしたいと考えています。ここで 表示方法htmlクラスの時刻レコードに基づいてオープン/クローズ

は、私がこれまで持っているコードです:

<p class="business-hour" itemprop="openingHours" content="Monday 8am-17pm"> 
    <span class="day">Monday</span> 
    <span class="business-hour-time"> 
     <span class="start">8:30 am</span> – <span class="end">5:30 pm</span> 
    </span> 
</p> 

これは、たった一日のためですが、あなたのアイデアを得る必要があります。私は何時間もこのようなものを見つけるために何度も探してきました。私が見つけることができるのは、Javascriptで定義された特定の時間でコーディングすることだけです。私はオープンまたはクローズを作成するためにクラスの開始と終了を使用できるようにしたい。これは可能ですか?私はそうだと思います。私はちょうどそれを正しくするように見えない。

私はここで練習してきたが、何かを見つけ出すように見えることはできません。http://codepen.io/tetonhiker/pen/KzxRzg

感謝を!

私は date.jsを利用して、少し自分のコードを変更した
+0

[date.js](http://www.datejs.com/)のようなライブラリを使用していますか?タスクをもっと簡単にするでしょう([この質問]を参照してください(http://stackoverflow.com/questions/9729484/convert-a-time-string-say-1205-pm-into-a-datetime-using-date -parse-in-javascr)) –

+0

はい私はそうです。どうすればそれを使うのですか? – lostInTheTetons

+0

PHPでこれを行う方法はありますか? – lostInTheTetons

答えて

4

http://codepen.io/anon/pen/VaGdBK

var da = new Date(); 
 
document.getElementById("display").innerHTML = da.toDateString(); 
 

 

 

 

 
//gets the current time. 
 
//var d = new Date(); 
 
var x = document.getElementsByClassName("start")[0].innerText; 
 
var z = document.getElementsByClassName("end")[0].innerText; 
 
//var o = parseInt(x,10); 
 
//var c = parseInt(z,10); 
 

 
var startTime = Date.parseExact(x, "h:mm tt"); 
 
var endTime = Date.parseExact(z, "h:mm tt"); 
 

 
if (da.between(startTime, endTime)){ 
 
    $(".open").show(); 
 
    $(".closed").hide(); 
 
} 
 
else { 
 
    $(".closed").show(); 
 
    $(".open").hide(); 
 
}
.open, .closed { 
 
    display: none; 
 
}
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script> 
 
<script src="//cdnjs.cloudflare.com/ajax/libs/datejs/1.0/date.min.js"></script> 
 
<span class="day">Monday </span> 
 
<span class="start">8:30 am</span> - 
 
<span class="end">5:30 pm</span> 
 
<br> 
 
<span id="display"></span> 
 
<div class="open">Shop is open</div> 
 
<div class="closed">Shop is closed</div>

私は十分に私は知らないそれに見ていませんそれはタイムゾーンに関してどのように機能しますか?あなたはそれを説明するために私が投稿したものを調整しなければならないかもしれません。

また、CSSルールを追加して、jQueryによって非表示にされる前に表示されている開いているものと閉じていないものを簡単に点滅させないようにしました。

+0

ありがとう!私はそれが私のテーマで働くようになっています。それは何時間も何時にも表示されていることを除いて。現在の曜日にのみ表示するように設定する方法はありますか? – lostInTheTetons

+0

PHP側でもっとうまくいくかもしれませんが、次のようにすることができます:日を表示する各スパンに 'data-day'属性を追加し、それぞれ0から6までの値を与えます(日曜日は0です)。ネイティブ 'getDay()'を使用し、その値が 'data-day'属性値と等しいかどうかを比較して、開いているdivと閉じたdivのどちらかを表示することができます:' if(da.getDay()=== $( '。データ( '日')){/ /ここにあなたの表示/非表示を行います} ' –

+0

遅く応答して申し訳ありません、すべてのあなたの助けに感謝btw。どのように私は毎日0 - 6の値を与えることができますか? – lostInTheTetons

関連する問題