Skip to content

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

 <input class="alert-input date-input" #dob="ngModel" name="dob" max="2018-03-07" [(ngModel)]="leadDetail.dob" type="date"></div>

How can I set the max date for today instead of 2018-03-07 dynamically?

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

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:

Because 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 clarification run this:

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