Reputation: 4099
<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.
Upvotes: 8
Views: 12314
Reputation: 86800
Try this:
<input class="alert-input date-input" name="dob" [max]="today" type="date">
today = new Date().toJSON().split('T')[0];
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());
Upvotes: 21
Reputation: 89
the submit button will be disabled if input date is greater than current date
register.component.html
<div class="container">
<form #loginForm="ngForm" (ngSubmit)="submitLoginForm(loginForm)" style="background- color:beige;">
<input [(ngModel)]="vdate" name="dob" type="date">
<button type="submit" [disabled]="!loginForm.valid || (today < vdate)" class="btn">Login</button>
</form>
</div>
register.component.ts
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-register',
templateUrl: './register.component.html',
styleUrls: ['./register.component.css']
})
export class RegisterComponent implements OnInit {
vdate: Date
today = new Date().toJSON().split('T')[0];
constructor() {
}
ngOnInit() {
}
submitLoginForm() {
console.log("Welcome to Jollywood")
}
}
Upvotes: 0
Reputation: 11
change mm to MM then the format but this will effect to the date you changed this wont help until unless its ngModel is bind to another variable
Upvotes: 1