我需要创建一个在页面加载时打开的弹出窗口,仅在美国东部时间上午11点到晚上7点之间 我有自动弹出功能,但在添加时间差异方面遇到了麻烦 请指教。 已编辑
<!--chat-->
<script type="text/javascript">
$(document).ready(function() {
var currentTime = new Date((new Date()).toUTCString());
var startTime = new Date((new Date()).toUTCString());
var endTime = new Date((new Date()).toUTCString());
startTime.setUTCHours(8);
endTime.setUTCHours(19);
//set times to EST. (UTC -5)
currentTime.setHours(currentTime.getHours() - 5);
startTime.setHours(startTime.getHours() - 5);
endTime.setHours(endTime.getHours() - 5);
//code to determine your variables goes here
var mylink = "https://mylink.com";
var windowname = "Chat Client";
if (currentTime < endTime && currentTime > startTime) {
popup(mylink, windowname);
}
});
function popup(mylink, windowname)
{
if (! window.focus)return true;
var href;
if (typeof(mylink) == 'string')
href=mylink;
else
href=mylink.href;
window.open(href, windowname, 'width=470,height=700,scrollbars=yes');
return false;
}
</SCRIPT>
答案 0 :(得分:0)
但这只适用于当地时间。
var date = new Date();
var hours = date.getHours();
if(hours > 11 && hours < 19)
{
// show pop-up
}
答案 1 :(得分:0)
//bad code removed to save space
编辑:
在任何时区工作:
//bad code removed to save space
更新:
添加了jquery标记和函数定义,以根据请求演示代码结构。
UPDATE2:
$(document).ready(function() {
var currentTime = toUTC(new Date());
var startTime = toUTC(new Date());
var endTime = toUTC(new Date());
startTime.setHours(11);
startTime.setMinutes(0);
startTime.setSeconds(0);
endTime.setHours(19);
endTime.setMinutes(0);
endTime.setSeconds(0);
//set times to EST. (UTC -4)
currentTime.setHours(currentTime.getHours() - 4);
//code to determine your variables goes here
//var mylink =
//var windowname =
if (currentTime < endTime && currentTime > startTime) {
popup();
}
});
function popup() {
//put function code here
$('body').append("Here is some text");
}
function toUTC(inDate) {
inDate.setMinutes(inDate.getMinutes() + inDate.getTimezoneOffset());
return inDate;
}
这里是fiddle。