使用jquery使对象在给定的时间和日期实时可见

Use jquery to make an object visible in real time at a given time and day

本文关键字:时间 日期 实时 jquery 对象 使用      更新时间:2023-09-26

我的页面上有一个对象,它在大多数情况下都是不可见的。然而,它在周日晚上9点至11点可见。这是PHP中的代码im使用:

<?php
 $day=date('w'); 
 $hour=date('Gi'); 
 if($day=="0" && $hour>2100 && $hour<2359) { $playoff=1; } else $playoff=0;
?>
<object style="<?php if ($playoff==0) { echo "display:none"; ?>" ></object>

然而,如果用户在此之前已经在页面上,并且没有重新加载,他们将无法看到该对象。这就是为什么我需要一些东西,一旦时间到了,就可以触发它,而不必重新加载页面。这必须用jquery完成吗?我该怎么做?

谢谢。

使用HTMl5,您可以使用Javascript Web Workers。

这里有一个例子:

$(function() {
var worker = new Worker('scripts/task.js'); //External script
worker.onmessage = function(event) {    //Method called by external script
    if(event.data.show) {
        $("#message").show();
    } else {
        $("#message").hide();
    }       
};

});

你的task.js文件:

setInterval(function() {
    var now = new Date();
    if(now.getDay() == 0 && (now.getHours() >= 21 && now.getHours() <= 23)) {
        postMessage({show: true});
    } else {
        postMessage({show: false});
    }   
},60000); //repeat after 1 minutes

请参阅本文http://www.w3schools.com/html/html5_webworkers.asp了解网络工作者是如何操作的。

注意:Internet Explorer 10、Firefox、Chrome、Safari和Opera支持Web工作程序。

我想你想做的是这样的事情。您可以在没有PHP的情况下查看日期。

HTML:

 <object id="show_me" ></object>

JavaScript:

function myTimer(){
    var d = new Date();
    if((d.getDay() == 0) && (21 < d.getHours() ) && (d.getHours() < 24)){
        $("#show_me").show();
    }else{
        $("#show_me").hide();
    }     
}
setInterval(function(){myTimer();},10000); // check every 10 seconds

希望这有帮助:

<?php
   $day=date('w'); 
   $hour=date('Gi'); 
   if($day=="0" && $hour>2100 && $hour<2359) { $playoff=1; } else $playoff=0;
   echo $playoff;
?>

HTML

<object id="hideOrShowMe"></object>

JQUERY

$.get("scriptAbovePageName.php", function( data ) {
  if(data == 1){
    $('#hideOrShowMe').css("display", "block");
}else{
    $('#hideOrShowMe').css("display", "none");
});

剩下的唯一一件事就是把它放在一个循环中(每分钟或每秒钟调用$.get等(-但我并不是为你写所有的代码:-D

附加

最好的方法是获取页面加载时的服务器日期和时间,然后获取用户计算机时间和服务器时间之间的差值,并按此量调整用户日期和时间。

我们想显示时间9-11和星期几=1

页面加载-服务器时间为8(便于理解(,一周中的某一天为3

检查服务器时间与本地时间-本地时间为9,日期为4

然后本地存储调整变量(时间-1(8-9(和日期-1(

然后获取本地时间,每隔60秒执行一次javascript循环。

所以稍后:

本地时间=12,本地日期=2->调整为11和1,然后对照周日的固定晚上9点到11点进行检查

然而,对于初学者来说,这有点复杂,所以上面的答案会很好,除非你有数千个用户,并且每分钟左右(间隔6000等(只调用一次脚本