<input class="alert-input date-input" #dob="ngModel" name="dob" max="2018-03-07" [(ngModel)]="leadDetail.dob" type="date"></div>¿Cómo puedo establecer dinámicamente la fecha máxima para hoy en lugar de 2018-03-07?
Intenté los siguientes métodos-
<input max="today" type="date"></div> <input max="{{today | date:'yyyy-mm-dd'}}" type="date"></div>Clase -
public today = new Date();pero sin suerte.
Prueba esto:
<input class="alert-input date-input" name="dob" [max]="today" type="date"> today = new Date().toJSON().split('T')[0];Demostración de ejemplo de trabajo
Razón:
Debido a que cuando usa la new Date() , esto le dará la fecha completa con la zona horaria y la hora, etc., debe asignar solo la Fecha, por lo que debe dividir esto solo con la Fecha. Para más aclaraciones ejecuta esto:
console.log(new Date(), '----', new Date().toJSON());cambie mm a MM y luego el formato, pero esto afectará a la fecha en que cambió, esto no ayudará hasta que su ngModel esté vinculado a otra variable
el botón Enviar se desactivará si la fecha de entrada es posterior a la fecha actual
registro.componente.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>registro.componente.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") } }