如何修改JS代码实现周一至周五指定时段显示servicebutton服务按钮
代码调整方案
你原有代码仅实现了时段判断,缺少周一至周五的工作日限制,调整后可直接使用的完整代码如下:
var d = new Date(); // getDay()返回值说明:0=周日、1=周一、2=周二、3=周三、4=周四、5=周五、6=周六 var currentWeekDay = d.getDay(); var currentHour = d.getHours(); // 先判断是否为工作日,再判断是否在指定展示时段 if (currentWeekDay >= 1 && currentWeekDay <=5 && ((currentHour >=9 && currentHour <12) || (currentHour >=13 && currentHour <16))) { $(".servicebutton").show(); } else { $(".servicebutton").hide(); }
调整说明
- 新增工作日判断逻辑:通过
getDay()方法获取当前星期值,限制仅1到5(对应周一到周五)满足基础展示条件 - 补充逻辑运算符优先级处理:将两个时段的判断用括号包裹,避免
&&优先级高于||导致的判断逻辑错误 - 优化时段边界判断:将原有
<=12调整为<12,避免12:00-12:59时段误展示,如果你需求中需要包含12点整到12点59分的时段,改回<=12即可
可选优化(精确到分钟级控制)
如果需要严格卡9:00整展示、12:00整隐藏的分钟级规则,可以使用换算总分钟数的方案实现更精准的控制:
var d = new Date(); var currentWeekDay = d.getDay(); var totalMinutes = d.getHours() * 60 + d.getMinutes(); if (currentWeekDay >= 1 && currentWeekDay <=5 && ((totalMinutes >= 9*60 && totalMinutes < 12*60) || (totalMinutes >=13*60 && totalMinutes < 16*60))) { $(".servicebutton").show(); } else { $(".servicebutton").hide(); }
注意:上述代码使用用户本地设备时间判断,如果你需要统一按官方时区/服务端时间生效,建议先从后端接口获取服务端时间再做判断,避免用户修改本地时间导致规则失效。
内容的提问来源于stack exchange,提问作者WOWMedia
相关产品推荐
相关产品推荐

