前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版
首页程序员面试题库HTML input week value iso week
HTML表单与输入

week 输入的值为什么像 2026-W01,一年一定有 52 周吗?

type="week" 的值形如 2026-W01,其中年份是 ISO 周年份,不一定等于这一周里每一天的公历年份。ISO 周从周一开始,一年可能有 52 周,也可能有 53 周。

前端进阶之旅 · 一题精讲更新于 2026.09.29
HTML#表单与输入#表单
先看核心答案读代码示例
理解线索

周年份与公历年份可能不同

  1. YYYY-Www周输入的标准值形式
  2. ISO 周从周一到周日的一周
  3. 周年份按第一周规则划分的年份

跨年周可能从上一年十二月开始,不能按字符串里的年份推断周一日期。

核心回答

先记住这个答案

周输入的提交值是 YYYY-Www 形式,例如 2026-W01,不是某一天的日期。ISO 周从周一开始,包含当年第一个星期四的那一周是第一周,因此跨年时,周年份可能与某一天的公历年份不同。一年不固定只有 52 周,部分 ISO 周年份有第 53 周。处理排期时要用真正理解 ISO 周的日期逻辑,不能只拼字符串或假设每年周数相同。

  • 值格式是年份加 W 和两位周号
  • ISO 周从周一开始
  • 第一周包含该年第一个星期四
  • 有些周年份存在第 53 周

跨年几天可能属于下一周年份

排班系统按周汇总时,十二月末的几天可能被算进下一周年份,元旦后的几天也可能仍属于上一周年份。week 的年份不是简单从所选周的周一日期取 getFullYear()。

选择一周而不是一天HTML
<label for="sprint">迭代周</label>
<input id="sprint" name="sprint" type="week"
  min="2026-W01" max="2026-W53" required>
<p>按 ISO 周编号选择排期。</p>

控件提交的是周编号;2026 这个 ISO 周年份有第 53 周。换成年份后必须重新计算终点,不能把所有年份的 max 都固定写成 W52 或 W53。 周编号适合周报或迭代计划。如果业务实际需要一个明确的开始日期和结束日期,服务端应把周值按 ISO 规则换算为日期范围,并与用户时区和项目日历要求核对。

第一周不是一月一日那周的简单编号

ISO 规则用“包含当年第一个星期四的周”确定第一周,等价于新年至少有四天落在该周。周从周一开始,所以跨年边界不能用“1 月 1 日所在周永远是 W01”判断。

有些周年份会排出第 53 周。面试里说清规则比背哪年有 53 周更有用;业务代码应使用可靠的日期库或标准算法,不要按天数除以七向上取整。

ISO 周数有一个反直觉例子:2021 年 1 月 1 日属于 2020-W53,因为它所在那周的大部分日期在 2020 年。若把 YYYY-Www 中的年份当成公历日期年份,年末和年初报表就会归错组。后端若用数据库的周函数,还要确认它是否遵循同一套 ISO 周规则;仅把日期格式化成“年 + 第几周”并不可靠。控件不支持时可能回退为文本输入,服务器仍要检查周号是否真实存在。

回答前,多想一步

容易答错的地方

认为 YYYY 一定等于所选周每一天的公历年份
跨年周会同时覆盖两个公历年份;周年份由 ISO 第一周规则决定。
认为所有年份只有 52 周
ISO 周年份可能有 53 周,范围校验必须按实际年份计算。
试着用自己的话回答

面试官还会怎么问?

ISO 周从周几开始?

周一开始,周日结束;这和某些地区日历界面以周日开头不同。

如何找某周对应的日期范围?

按 ISO 周年份先定位第一周的周一,再向后移动相应周数;不要直接解析 YYYY 当成周一所在年。

浏览器不支持原生周选择器怎么办?

保留可理解的格式说明与服务端校验,必要时提供自定义日期范围选择;不能只依赖控件外观。

从一道题,走向一组知识

把知识连起来

语义与文档

abbr 的 title 能解释缩写吗,为什么还要在正文说明?

<abbr> 可解释表格中不熟悉的“ISO 周”缩写。

语义与文档

为什么大多数网站不该随意给按钮设置 accesskey?

键盘快捷键与周编号输入是不同问题,原有跨主题关联较弱。

参考资料

  • HTML:表单与输入参考资料

示例用于理解所注明的运行环境与边界;延伸学习可结合原文中的更多案例。

本题目录
  1. 先记住这个答案
  2. 跨年几天可能属于下一周年份
  3. 第一周不是一月一日那周的简单编号
  4. 容易答错的地方
  5. 面试官还会怎么问
  6. 把知识连起来
读懂,再试着讲出来

先看核心答案,再读代码。最后展开追问,检查自己有没有遗漏边界。

试着回答追问
浏览全部面试题理解原理,也关注真实的使用场景。回到顶部 ↑