如何用JavaScript实现按日期切换文本且指定日期后永久显示固定内容
日期切换文本功能调整方案
你原有代码的问题是仅判断当前日期是否完全等于2021-12-05,过了当日之后就会恢复显示B,不符合永久显示A的需求,调整方案如下:
最简修改方案
直接将相等判断改为大于等于判断即可,YYYY-MM-DD格式的ISO日期字符串的字典排序和日期实际先后顺序完全一致,可直接比较:
document.getElementById('test').innerHTML = today.toISOString().substring(0, 10) >= '2021-12-05' ? 'A' : 'B';
适配本地时区的优化方案
如果需要匹配用户本地时区的日期,避免UTC时间和本地时间的时区差导致判断提前/延后,可使用本地日期格式化的判断方式:
// 生成本地时区的 YYYY-MM-DD 格式日期字符串 const localDate = `${today.getFullYear()}-${String(today.getMonth() + 1).padStart(2, '0')}-${String(today.getDate()).padStart(2, '0')}` document.getElementById('test').innerHTML = localDate >= '2021-12-05' ? 'A' : 'B';
时间戳比较方案
不需要处理字符串格式化,直接比较毫秒时间戳,逻辑更严谨:
// 注意Date构造函数的月份参数从0开始计数,12月对应值为11 const targetTime = new Date(2021, 11, 5).getTime(); document.getElementById('test').innerHTML = today.getTime() >= targetTime ? 'A' : 'B';
以上三种方案都可以实现2021年12月5日之前显示B,当日及之后永久显示A的需求,无需后续更新代码。
内容的提问来源于stack exchange,提问作者iamnew
相关产品推荐
相关产品推荐

