How to set minDate for ng-bootstrap datepicker

Anshuman Jasrotia picture Anshuman Jasrotia · Mar 27, 2017 · Viewed 25.3k times · Source

Below is the code I am using to set the minDate

 <input ngbDatepicker #d="ngbDatepicker"  [minDate]="minDate" [formControl]="Form.controls['dateOfBirth']">

In the component I am setting the minDate as below:

public minDate: Date = void 0; 
constructor() {
    this.minDate = new Date(1950, 1, 1);
}

But the datepicker still shows 2007 as the minDate. Is there any thing that is missing. Let me know in case any other information is required.

Thanks for your time.

Answer

pkozlowski.opensource picture pkozlowski.opensource · Mar 27, 2017

From your code snippet it looks like you are using ng-bootstrap from https://ng-bootstrap.github.io/#/components/datepicker. Assuming that I'm correct you need to use NgbDateStruct (an object with fields like year, month, day) instead of the built-in JavaScript Date object. For example, to set a min date to the beginning of this year you would use:

this.minDate = {year: 2017, month: 1, day: 1};

Here is a working example in a plunker: http://plnkr.co/edit/VDEYDwp7QIZDDHatCNPh?p=preview