2016-07-15 4 views
0

私が現在取り組んでフィドルを追加したUPDATE

、それは正しいはずですような気がしますが、それが動作するようには思えません。営業時間内にdivを表示/非表示にするには、UTCとミックスしますか?

https://jsfiddle.net/bill9000/yadk6sja/2/

元の質問:

私が持っていることは(基本的には、特定の業務時間中にDIVを表示)/非表示のdivを表示するためにいくつかのコードである - これは計算を使用するようにする簡単な方法がありますUTCから...特定のタイムゾーンで表示/非表示時間が固定されるようにします。例えば。午後6時ESTではなく、午後6時のユーザーの時間の...ここに私の現在のコードです:また

var d = new Date(); 
var dayOfWeek = d.getDay(); 
var hour = d.getHours(); 
var mins = d.getMinutes(); 
var status = 'open'; 

if (dayOfWeek !== 6 && dayOfWeek !== 0 && hour >= 03 && hour < 15){ 
//if (hour=='10' && mins < '30'){ 
    // status = 'closed'; 
// }else{ 
    status = 'open'; 
// } 
}else{ 
status = 'closed'; 

if (status=='open') { 
$b('.orderby').show(); 
}else{ 
$b('.orderby').hide(); 
} 

、私は、UTCの差分を取得していますいくつかの他のJavaScriptを持っている:

function ShowTime() { 
var now = new Date(); 
var diff = now.getTimezoneOffset()/60; //the difference between local PC and UTC 
diff = diff - 4; //the difference between UTC and EST 

    var hrs = 18-(now.getHours()+diff); //18 is the target hour 

表示/非表示をするのいずれかの方法特定の時間の作業ですか?

+0

を防ぐためにd.getUTCDay()d.getUTCHours()などを使用する必要があります)、getUTCHours()、 getUTCMinutes()。次に、オフセットを計算する必要はありません。 –

答えて

1

Date()オブジェクトはすでにUTCです。d.getDay()またはd.getHours()を使用すると、ローカルタイムゾーンがオンザフライで適用されます。

あなたはちょうど私があなたがUTCにお店の時間を変換してからgetUTCDayを(使用して、クライアント上のUTC時刻と比較をお勧めします。この

+0

これは私がd.getUTCDay()、d.getUTCHours()を使用すれば正しいですか? if(dayOfWeek!== 6 && dayOfWeek!== 0 && hour> = 03 && hour <15){ – M21

+0

はい。変更はdayOfWeekとhourの宣言になります。 –

+0

ありがとう!元の質問をフィドルで更新しましたが、まだ動作していないようです。 – M21

関連する問題