如何在<input type="date">中默认显示dd-mm-yyyy格式的今日日期
解决默认显示今日日期的问题
首先明确核心规则:原生的value属性仅接受ISO 8601标准格式(yyyy-MM-dd),你之前用dd-mm-yyyy格式赋值,不符合要求所以无法显示。而输入框的显示格式是由浏览器根据用户系统的区域设置自动渲染的,无法通过代码强制改成dd-mm-yyyy,但可以保证默认值为今日,同时保留原生日期选择器。
修正后的代码
先修正你代码里的变量名错误(比如oggi应该是today,giorno对应day,mese对应month),再将日期转为符合要求的格式:
// 获取今日日期 let today = new Date(); let day = today.getDate(); let month = today.getMonth() + 1; // 月份从0开始,需+1 let year = today.getFullYear(); // 补零处理 if (day < 10) day = '0' + day; if (month < 10) month = '0' + month; // 转为ISO 8601格式(yyyy-MM-dd) let formattedDate = `${year}-${month}-${day}`; // 赋值给date输入框 document.getElementById('DATE').value = formattedDate;
关键说明
- 执行这段代码后,会自动显示今日日期,并且保留原生日期选择器功能。
- 输入框的显示格式(比如是dd/mm/yyyy还是yyyy-mm-dd)由用户的系统语言/区域设置决定,无法通过前端代码强制修改。如果必须固定显示dd-mm-yyyy,只能放弃原生date控件,改用搭配第三方日期选择器,但这会失去原生控件的便利性。
内容的提问来源于stack exchange,提问作者GM02
相关产品推荐
相关产品推荐

