我想按日期字段值预填充到9999/12/31。我试过以下代码
HTML
<div class="col-md-1">
<datepicker date-format="yyyy-MM-dd">
<input
id="endDate"
type="date"
class="form-control"
ng-model="entity.endDate"
placeholder="yyyy-MM-dd
ng-required="true"
ng-disabled="formName == 'VIEWX'"
>
</datepicker>
</div>
控制器
$scope.entity = {
endDate: new Date(9998, 12, 31)
};
我将预填充值视为&#39; 10000-01-31&#39;
答案 0 :(得分:1)
Javascript日期可能很愚蠢。 Date对象使用 0-indexed months 。来自documentation(强调我的):
注意:如果将Date作为具有多个参数的构造函数调用,如果值大于其逻辑范围(例如,13为月值或70为分钟值),则将调整相邻值。例如。新日期(2013,13,1)相当于新日期(2014,1,1),两者都创建了2014-02-01 的日期(请注意月份为0)。
提及
的Date.getMonths()
方法进一步支持了这一点
getMonth()
方法根据当地时间返回指定日期的月份,作为从零开始的值(其中零表示一年中的第一个月)。
9999年12月31日的正确日期是
new Date(9999, 11, 31);