HTML如何实现网页在特定时间段内显示维护公告

酷浩酱_6810

酷浩酱_6810

2026-04-16

941人浏览

原创

判断维护时段需将时间转为分钟数比较,注意时区统一;跨日时段要拆分为“当前≥起点”或“当前≤终点”两个条件。

html如何实现网页在特定时间段内显示维护公告

用 JavaScript 判断当前时间是否在维护时段内

核心思路是获取 new Date() 的小时和分钟,与预设的维护开始/结束时间对比。注意时区——浏览器使用本地时区,若需统一按服务器时间(如 UTC+8),得手动校正或后端传参,否则用户在不同时区看到的“维护状态”可能不一致。

常见错误是直接比对字符串(如 "02:00" > "23:59"),结果不可靠;必须转成可比较的数值(如分钟数):

const now = new Date();
const currentMinutes = now.getHours() * 60 + now.getMinutes();
const startMinutes = 2 * 60 + 0;   // 02:00 → 120 分钟
const endMinutes = 5 * 60 + 30;     // 05:30 → 330 分钟
const isInMaintenance = currentMinutes >= startMinutes && currentMinutes <h3>维护公告 DOM 的显示与隐藏控制</h3><p>维护区域通常是一个全屏遮罩层(<code><div id="maintenance-banner">),初始应设为 <code>display: none</code> 或 <code>visibility: hidden</code>。JS 判断为维护时段后,再通过 <code>element.style.display = "block"</code> 激活。<p>容易踩的坑:</p>
<ul>
<li>没加 <code>DOMContentLoaded</code> 或 <code>window.onload</code> 就执行判断,导致 DOM 元素还不存在,<code>getElementById</code> 返回 <code>null</code>
</li>
<li>用 <code>visibility: hidden</code> 而非 <code>display: none</code>,虽隐藏但仍占布局空间,可能压住关键按钮或表单</li>
<li>未考虑移动端 viewport,遮罩层没设 <code>position: fixed</code> 和 <code>z-index</code>,导致滚动后公告错位或被盖住</li>
</ul>
<h3>支持跨天维护(如 23:00 至次日 06:00)的时间逻辑</h3>
<p>当维护时段跨越午夜(即 <code>startMinutes > endMinutes</code>),常规的「大于等于起点且小于等于终点」会失效。此时要拆成两个条件判断:</p><div class="aritcle_card flexRow artxards">
											<div class="artcardd flexRow">
												<a class="aritcle_card_img" rel="nofollow" href="/xiazai/skill5806" title="html-deploy"><img
														src="https://img.php.cn/upload/skill/000/000/081/179066538882434.jpg" alt="html-deploy" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a>
												<div class="aritcle_card_info flexColumn">
													<a rel="nofollow" href="/xiazai/skill5806" title="html-deploy" class="overflowclass">html-deploy</a>
													<p class="overflowclass">使用 htmlcode.fun 将 HTML 内容或文件部署到网页,适用于用户要求“部署到网页”“托管此 HTML”“生成此前端...的实时链接”等场景。</p>
												</div>
												<a rel="nofollow" href="/xiazai/skill5806" title="html-deploy" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span>
												</a>
											</div>
										</div>
<pre class="brush:php;toolbar:false;">const isInMaintenance = 
  (currentMinutes >= startMinutes) || 
  (currentMinutes <p>例如:23:00(1380 分钟)到 06:00(360 分钟),只要当前分钟数 ≥1380(当天后半夜)或 ≤360(次日凌晨),即属维护中。这个逻辑不能省略,否则凌晨 01:00 就不会触发公告。</p><h3>避免页面加载完成前闪现正常内容</h3><p>用户网速快时,HTML 渲染早于 JS 执行,可能先看到首页,再突然弹出维护页——体验割裂。解决方法是在 <code></code> 中内联一段极简脚本,立即检查并隐藏主体内容:</p><pre class="brush:php;toolbar:false;"><script>
  const now = new Date();
  const h = now.getHours(), m = now.getMinutes();
  const inRange = (h === 2 && m >= 0) || (h > 2 && h < 5) || (h === 5 && m <= 30);
  if (inRange) {
    document.documentElement.classList.add('in-maintenance');
  }
</script>

再配合 CSS:.in-maintenance main { display: none; }、.in-maintenance #maintenance-banner { display: block; }。这样样式层就先于 JS 完整逻辑接管,消除闪烁。

真正难处理的是缓存问题:用户上次访问时不在维护期,CDN 或浏览器缓存了旧 HTML,JS 一跑才发现已进维护,但页面结构已渲染完毕。这时候只能靠 Service Worker 拦截请求,或后端根据时间动态输出 HTML ——纯前端方案对此无能为力。

前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!

相关专题

更多
html版权符号
html版权符号

html版权符号是“©”,可以在html源文件中直接输入或者从word中复制粘贴过来,php中文网还为大家带来html的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

2023.06.14

5395

7

html在线编辑器
html在线编辑器

html在线编辑器是用于在线编辑的工具,编辑的内容是基于HTML的文档。它经常被应用于留言板留言、论坛发贴、Blog编写日志或等需要用户输入普通HTML的地方,是Web应用的常用模块之一。php中文网为大家带来了html在线编辑器的相关教程、以及相关文章等内容,供大家免费下载使用。

2023.06.21

3112

4

html网页制作
html网页制作

html网页制作是指使用超文本标记语言来设计和创建网页的过程,html是一种标记语言,它使用标记来描述文档结构和语义,并定义了网页中的各种元素和内容的呈现方式。本专题为大家提供html网页制作的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.31

2770

5

html空格
html空格

html空格是一种用于在网页中添加间隔和对齐文本的特殊字符,被用于在网页中插入额外的空间,以改变元素之间的排列和对齐方式。本专题为大家提供html空格的相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.01

2799

5

html是什么
html是什么

HTML是一种标准标记语言,用于创建和呈现网页的结构和内容,是互联网发展的基石,为网页开发提供了丰富的功能和灵活性。本专题为大家提供html相关的各种文章、以及下载和课程。

2023.08.11

4679

6

html字体大小怎么设置
html字体大小怎么设置

在网页设计中,字体大小的选择是至关重要的。合理的字体大小不仅可以提升网页的可读性,还能够影响用户对网页整体布局的感知。php中文网将介绍一些常用的方法和技巧,帮助您在HTML中设置合适的字体大小。

2023.08.11

2741

3

html转txt
html转txt

html转txt的方法有使用文本编辑器、使用在线转换工具和使用Python编程。本专题为大家提供html转txt相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.31

2529

3

html文本框代码怎么写
html文本框代码怎么写

html文本框代码:1、单行文本框【<input type="text" style="height:..;width:..;" />】;2、多行文本框【textarea style=";height:;"></textare】。

2023.09.01

2288

6

HTML嵌入CSS样式的方法
HTML嵌入CSS样式的方法

HTML嵌入CSS样式的方法有内联样式、内部样式表和外部样式表。本专题为大家提供CSS样式相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.20

2288

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
GDB 17.2 官方文档集合
GDB 17.2 官方文档集合

共0课时 | 0人学习

Bootstrap 入门安装配置
Bootstrap 入门安装配置

共0课时 | 0人学习

38+ PhpStorm 提示和技巧
38+ PhpStorm 提示和技巧

共1课时 | 219人学习