2017-04-10 8 views
-2

Gibt es eine js-Funktion, mit der ich einen iframe nur während bestimmter Stunden anzeigen kann? Zum Beispiel nur zwischen 19.30 Uhr und 7.00 Uhr am nächsten Tag.Zeige nur zu bestimmten Zeiten einen iframe

+0

Zwischen 07.30 und 07.00 Uhr in der Zeitzone des Benutzers oder in der Zeitzone des Web-Servers? Wenn der Benutzer die Seite um 6:59 Uhr öffnet und der Iframe angezeigt wird, soll er eine Minute später automatisch verschwinden und den Benutzer dadurch verwirren? – nnnnnn

Antwort

1

Diese Frage ist bereits zuvor beantwortet. Sie können es hier finden link. Wie auch immer, nur die Antwort posten.

var startTime = '7:00 AM'; 
var endTime = '7:30 AM'; 
var now  = new Date(); 

var startDate = dateObj(startTime); // get date objects 
var endDate = dateObj(endTime); 

var flag = now < endDate && now > startDate ? 'showFrame' : 'hideFrame'; // 
compare 
if(flag === 'showFrame') 
{ 
console.log(flag); 
// show Frame 
} 

function dateObj(d) { // date parser ... 
var parts = d.split(/:|\s/), 
date = new Date(); 
if (parts.pop().toLowerCase() == 'pm') parts[0] = (+parts[0]) + 12; 
date.setHours(+parts.shift()); 
date.setMinutes(+parts.shift()); 
return date; 
} 

Fiddle: Please see this Fiddle

2

Mit den folgenden Methoden des Date-Objekts sollten Sie in der Lage sein, die Zeit zu generieren.

var today = new Date() 
var hour = today.getHours() 
var minutes = today.getMinutes() 

Sie am Tag Objekt aufrufen könnte jede Minute mit setInterval(), um herauszufinden, ob es von 19.30 Uhr bis 07.00 Uhr ist. Dann können Sie das Intervall löschen und einen weiteren Timer setzen, um den Iframe um 7:00 Uhr neu zu laden. wo Sie setInterval wieder jede Minute überprüfen

Bitte beachten Sie: getHours() die Stunde auf einer 24-Stunden-Uhr Rückkehr so, wenn es 07.00 today.getHours() Ausgänge sind 19

es auch eine sehr nützliche Bibliothek namens Moment. js, dass Sie vielleicht für JS Probleme mit der Zeit suchen möchten (scheint Overkill für nur 7:30 und 7:00 obwohl) see here

Verwandte Themen