在我的组件中,我将以下值传递给控件。我传递的值都是日期类型。
this.form.controls["DepartureDate"].setValue(this.flightChoice.departureDate);
this.form.controls["ReturnDate"].setValue(this.flightChoice.returnDate);
控件的类型为文本 因为如果我使用日期类型,则根本不会写入该值。
<input class="form-control" formControlName="DepartureDate" type="text" id="departureDate" />
<input class="form-control" formControlName="ReturnDate" type="text" id="returnDate" />
现在,传递值的结果是: 这样的日期: 2018-06-30T00:00:00 + 02:00 当我想要这样的约会时: 30-06-2018 我应该怎么做才能获得这种价值?为什么使用类型为“ date”的输入将不接受我的价值?
答案 0 :(得分:0)
这是一个非常普遍的问题,之前已经得到回答。例如,签出Formatting Date in Angular without the time。
并非所有浏览器都完全支持日期类型输入控件。值得注意的是,caniuse.com compatibility list中缺少IE11和Safari。
答案 1 :(得分:0)
这是你的 solution
WordSchema
HTML:
import { Component } from '@angular/core';
import { FormGroup, FormBuilder, } from '@angular/forms';
import moment from 'moment';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
name = 'Angular 6';
dateForm: FormGroup;
depDate: any;
retDate: any
constructor(private fb: FormBuilder) {
this.createDateForm();
}
createDateForm() {
this.dateForm = this.fb.group({
DepartureDate: null,
ReturnDate: null
});
}
chageDepartureDate() {
this.depDate = moment(this.dateForm.get('DepartureDate').value).format("DD-MM-YYYY");
}
changeReturnDate(event) {
this.retDate = moment(this.dateForm.get('ReturnDate').value).format("DD-MM-YYYY");
}
});
}
}