2

我需要在我的网站上显示“打开”和“关闭”功能的脚本。

脚本应在周一至周五每天上午 8:00 至晚上 19​​:30 期间显示“OPEN”

周六应在上午 08:00 至下午 15:00 显示“OPEN”(否则显示 CLOSED)

周日全天关闭。

我尝试管理此脚本,但无法实现:

var Digital=new Date()
var hours=Digital.getHours()

if (hours>=08:00&&hours<=19:30) 
document.write('Open')
else if (hours>=19:31&&hours<=07:59) 
document.write('Close')

但我需要补充这些天,这只是时间。

4

2 回答 2

2

hours变量将是一个整数,您需要将它与一个数字进行比较,如下所示:

if (hours >= 8 && hours <= 19) 
    document.write('Open')
else if (hours >= 19 && hours <= 7) 
    document.write('Close')

重写这些方法时,您还需要从Digital变量中获取并比较分钟数。

于 2013-09-25T15:15:58.820 回答
1

在检查时间之前,您需要使用if语句检查当前日期。您的格式略有偏差,因为digital.getHours()返回的是整数而不是那些格式化的字符串。

我还添加了一个setInterval以每分钟更新一次状态,以防页面长时间打开。

这是小提琴:http: //jsfiddle.net/u6bwJ/1/

编辑:修复了一些错误(即拼写错误)。我还看到您需要为此进行本地化。我对针对时区进行调整的代码顶部进行了一些更改,因此它始终根据本地时间显示信息。不过有一个警告,那就是它目前是硬编码的,包括夏令时。这意味着一旦 DST 切换它将不准确。

第 10 行:
utc1Time=new Date(localTime.getTime() + (localTime.getTimezoneOffset() + 120) * 60000);

+ 120在将客户端时间转换为 UTC 时间后增加 2 小时,使其变为 UTC+1,然后添加 DST 偏移量。您将需要添加一些方法来检查 DST 是否生效,类似于以下内容, utc1Time.toString().match(/daylight/i)
但我将把它留给您,因为这可能足以让您构建一个框架。

希望这有帮助:D

于 2013-09-25T17:01:21.077 回答