如何使用ng-it设置输入框默认值为当日日期(Plunker代码求助)
如何在AngularJS中将日期输入框默认值设为当日日期
你现在的代码里手动指定了固定日期2018-01-24,要实现动态显示当日日期,只需要修改ng-init里的逻辑,用JavaScript的Date对象生成符合input[type="date"]要求的YYYY-MM-DD格式字符串即可。
解决方案代码
这里提供两种写法,一种是兼容旧版AngularJS的ES5写法,另一种是更简洁的ES6写法:
兼容ES5的版本(适合所有AngularJS版本)
<div ng-app="" ng-init=" var today = new Date(); var year = today.getFullYear(); // 月份从0开始计数,加1后补零确保两位格式 var month = ('0' + (today.getMonth() + 1)).slice(-2); // 日期补零确保两位格式 var day = ('0' + today.getDate()).slice(-2); to = year + '-' + month + '-' + day; "> <p>Default date in the input box:</p> <p>Name: <input type="date" ng-model="to"></p> <p>You wrote: {{ to }}</p> </div>
ES6简洁版本(如果你的环境支持ES6语法)
<div ng-app="" ng-init=" const today = new Date(); const year = today.getFullYear(); const month = String(today.getMonth() + 1).padStart(2, '0'); const day = String(today.getDate()).padStart(2, '0'); to = `${year}-${month}-${day}`; "> <p>Default date in the input box:</p> <p>Name: <input type="date" ng-model="to"></p> <p>You wrote: {{ to }}</p> </div>
关键逻辑说明
new Date():获取当前设备的日期时间对象getFullYear():提取四位数字的年份(比如2024)- 月份处理:
getMonth()返回0-11的数字,所以要加1得到实际月份,再通过padStart(2, '0')或('0' + ...).slice(-2)补零,确保格式是两位(比如1月变成01) - 日期处理:同样用补零方法确保日期是两位数字(比如5号变成
05) - 最后拼接成
YYYY-MM-DD格式,赋值给to变量,这样ng-model绑定后,输入框就会自动显示当日日期了。
这样修改后,每次页面加载时,输入框都会自动填充当天的日期,而且{{ to }}也会同步显示正确的日期格式。
内容的提问来源于stack exchange,提问作者R. Mani Selvam
相关产品推荐
相关产品推荐

