Javascript 基于定时设置的自动弹出窗口警报框或bootstarp模式警报框
大家好,我面临的问题是,我需要一个弹出式警报框窗口,每天早上9:30自动弹出,应该在上午11:30结束,下午1:30到2:30再弹出,以增加学生的出勤率。我尝试过,但我无法根据服务器计时设置计时。请查看我的编码并帮助我,伙计们,非常感谢他们Javascript 基于定时设置的自动弹出窗口警报框或bootstarp模式警报框,javascript,php,jquery,bootstrap-modal,codeigniter-2,Javascript,Php,Jquery,Bootstrap Modal,Codeigniter 2,大家好,我面临的问题是,我需要一个弹出式警报框窗口,每天早上9:30自动弹出,应该在上午11:30结束,下午1:30到2:30再弹出,以增加学生的出勤率。我尝试过,但我无法根据服务器计时设置计时。请查看我的编码并帮助我,伙计们,非常感谢他们 <div class="modal fade" id="overlay"> <div class="modal-dialog"> <div class="modal-content"> <div class="m
<div class="modal fade" id="overlay"> <div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal aria-hidden="true">×</button>
<h4 class="modal-title">Modal title</h4>
</div>
<div class="modal-body">
<p>Context here</p>
</div>
</div>
因为它比一条评论要长,我不得不把它贴在这里
让我这样解释。在特定时间显示模式之前,您只需要几件事。
加载页面时,当代码到达具有Date()
函数的行时,它将记录该时刻,并在该时刻停止
这就是你需要一些实时更新时间的地方,这样你就有了实时更新时间。对于这个例子,这就是为什么我说可以使用像moment.js
这样的库
我给你两种选择:(香草)
setInterval每1秒(1000毫秒)运行一次时间函数
为了让函数按您希望的方式运行,您可以在特定的时间使用if语句,然后在此基础上触发模态。过了一段时间再把它藏起来
对于您的if条件,您可以这样写:
if(d.getHours() == 9 && d.getMinutes() = 30){
//show modal
}
您需要记住的一件事是,一旦加载,您的客户端就不知道服务器的状态/时间。如果您经常想根据服务器时间进行检查,则需要多次调用服务器进行检查。或者你可以使用js库,比如moment.js
在你的客户端sideHi@Bardia我需要根据date()对象设置时间和设置时间间隔,但我仍然在尝试它不会出现yar@Bradia让我试着告诉结果还有什么。hi@Bradia我试过这段代码仍然不起作用请参见函数time(){var d=new Date();var s=d.getSeconds();var m=d.getMinutes();var h=d.getHours();span.textContent=h+“:“+m+”:“+s;}setInterval(时间,1000);如果(d.getHours()==12和&d.getMinutes()=10){$('overlay').modal('show');}setTimeout(function(){$('overlay').modal('hide');},5000);您好@Bardia我在这里尝试了另一种方法,但仍然不起作用。我可以在这里看到脚本函数time(){var d=new Date();var s=d.getSeconds();var m=d.getMinutes();var h=d.getHours();span.textContent=h+“:“+m+”:“+s;}setInterval(time,1000);如果(d.getHours()==12和&d.getMinutes()=18){$('overlay').modal('show');}setTimeout(function(){$('overlay').modal('hide');},5000);问题是,你的if条件超出了循环,没有被触发。非常感谢@Bradia的工作伙伴,我非常感谢你救了我一天。
function time() {
var d = new Date();
var s = d.getSeconds();
var m = d.getMinutes();
var h = d.getHours();
span.textContent = h + ":" + m + ":" + s;
}
setInterval(time, 1000);
if(d.getHours() == 9 && d.getMinutes() = 30){
//show modal
}