预填充日期输入

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您旅程的每个阶段提供云产品。 立即开始使用 200 美元的免费额度!

HTML 有一种特殊的日期输入类型,如下所示:<input type="date">。在支持的浏览器中(非常好),用户将获得用于选择日期的 UI。非常有用的东西,尤其是在它回退到可用的text输入时。但是如何将其设置为特定日期呢?

要设置特定日期,您需要将value设置为 YYYY-MM-DD 格式,如下所示

<input type="date" value="1980-08-26">

小提示:在支持日期输入的浏览器中,placeholder将不起作用。日期输入可以有minmax,因此只能选择特定范围内的日期。这些采用相同的格式。为了好玩,我们在这里使用了 step 值,以便仅可以选择星期二

<input type="date" min="2017-08-15" max="2018-08-26" step="7">

如何将输入默认为今天的日期?不幸的是,没有仅 HTML 的解决方案,但可以使用 JavaScript。

<input id="today" type="date">
let today = new Date().toISOString().substr(0, 10);
document.querySelector("#today").value = today;

// or...

document.querySelector("#today").valueAsDate = new Date();

也可以选择特定的一周或一个月。预填充它们如下所示

<input type="week" value="2014-W02">

<input type="month" value="2018-08">

如果您需要日期和时间,也有一种输入类型。只是为了好玩

<input type="datetime-local" value="2017-06-13T13:00">

或者只是时间!在这里,我们将再次使用 step 只是为了好玩,将其限制为 15 分钟增量

<input type="time" value="13:00" step="900">

实时演示

查看 Chris Coyier 在 CodePen 上的 Pen 预填充 HTML 日期输入@chriscoyier)。

支持

此浏览器支持数据来自 Caniuse,其中包含更多详细信息。数字表示浏览器从该版本及更高版本开始支持该功能。

桌面

ChromeFirefoxIEEdgeSafari
2513213技术预览版

移动/平板电脑

Android ChromeAndroid FirefoxAndroidiOS Safari
1271274.418.0