-1

我需要创建一个在页面加载时打开并且仅在美国东部标准时间上午 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>
4

2 回答 2

0

但它只适用于当地时间。

var date = new Date();
var hours = date.getHours();

if(hours > 11 && hours < 19)
{
   // show pop-up
}
于 2013-06-18T12:23:51.837 回答
0
//bad code removed to save space

编辑:

在任何时区工作:

//bad code removed to save space

更新:

添加了 jquery 标记和函数定义,以根据请求演示代码结构。

更新2:

$(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;
}

在这里,它是一个小提琴

于 2013-06-18T12:27:08.450 回答