带有表单和 Angular 日期的 Angular/HTML 输入日期时间本地

问题描述

在我的 Angular 应用程序中,我希望用户选择约会的日期和时间,我正在尝试使用

<input matInput type="datetime-local"...>

元素。但是这个控件需要绑定一个表单,所以我创建了一个表单

public form: FormGroup;

constructor(_formBuilder: FormBuilder) {
  this.form = _formbuilder.group({
    datetime: new Date()
  });
}

我用这种形式包装 input 使其变成

<form [formGroup]="form">
    <input matInput type="datetime-local" formControlName="datetime">
</form>

这工作正常,因为日期时间插入到我的表单中,但初始值只是空白

enter image description here

在我开始更改它之前,它一直是空白的。我假设是因为输入需要一个字符串?我宁愿给它一个日期,但甚至给它一个字符串

constructor(_formBuilder: FormBuilder) {
   this.form = _formbuilder.group({
     datetime: new Date().toDateString()
   });
}

产生完全相同的结果。那么如何将其绑定到 Typscript Date 对象并开始以初始值显示它?

解决方法

HTML 日期时间-本地输入需要 'yyyy-MM-ddTHH:mm' 格式,但已给出日期对象。

所以你使用 Angular 日期管道作为转换它的另一种方式。

  import { DatePipe } from '@angular/common';

  public form: FormGroup;

  constructor(
    _formBuilder: FormBuilder,private datePipe: DatePipe,) {
      this.form = _formbuilder.group({
        datetime: this.datePipe.transform(new Date(),'yyyy-MM-ddTHH:mm')
      });
  }
,

此外,您可以使用 here 中描述的任何格式。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...