Swapnil Patwa Swapnil Patwa - 8 months ago 77
Javascript Question

Angular 2 - How to set max or min date to today for date input?

<input class="alert-input date-input" #dob="ngModel" name="dob" max="2017-04-01" [(ngModel)]="leadDetail.dob" type="date"></div>


How can i set the max date to today instead of 2017-04-01?

I tried following methods -

<input max="today" type="date"></div>
<input max="{{today | date:'yyyy-mm-dd'}}" type="date"></div>


Class -

public today = new Date();


but no luck.

Answer Source

Try this:

<input class="alert-input date-input" name="dob" [max]="today" type="date">


today = new Date().toJSON().split('T')[0];

Working Example Demo

Reason:

Becasue when you are using new Date() this will give you full date with time zone and time etc, you have to assign only Date so you have to split this with only Date. for more clerification run this

console.log(new Date(), '----', new Date().toJSON());