在Angular 6中,可以使用FormControl
和FormGroup
来创建响应式表单,并使用ngb-datepicker
和ngb-timepicker
来选择日期和时间。
首先,确保已经安装了@ng-bootstrap/ng-bootstrap
依赖项,可以使用以下命令安装:
npm install @ng-bootstrap/ng-bootstrap --save
在你的组件中,导入所需的模块和服务:
import { Component } from '@angular/core';
import { FormControl, FormGroup } from '@angular/forms';
import { NgbDateStruct, NgbTimeStruct } from '@ng-bootstrap/ng-bootstrap';
在组件类中定义一个日期和时间选择器的表单控件:
@Component({
selector: 'app-date-time-picker',
template: `
`
})
export class DateTimePickerComponent {
myForm: FormGroup;
selectedDate: NgbDateStruct;
selectedTime: NgbTimeStruct;
constructor() {
this.myForm = new FormGroup({
date: new FormControl(),
time: new FormControl()
});
}
updateDateTime() {
const { year, month, day } = this.selectedDate;
const { hour, minute, second } = this.selectedTime;
const dateTime = new Date(year, month - 1, day, hour, minute, second);
console.log(dateTime);
}
}
在模板中,使用ngb-datepicker
和ngb-timepicker
指令来创建日期和时间选择器。通过使用[(ngModel)]
在组件中绑定selectedDate
和selectedTime
属性,以便在日期或时间更改时更新值。使用(ngModelChange)
事件来捕获选择器的更改并调用updateDateTime()
方法。
在updateDateTime()
方法中,使用NgbDateStruct
和NgbTimeStruct
的属性来创建一个JavaScript日期对象,并在控制台中打印日期和时间。
请注意,你需要在模块中导入NgbModule
并将其添加到imports
数组中:
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
import { DateTimePickerComponent } from './date-time-picker.component';
@NgModule({
imports: [BrowserModule, FormsModule, ReactiveFormsModule, NgbModule],
declarations: [DateTimePickerComponent],
bootstrap: [DateTimePickerComponent]
})
export class AppModule { }
这是一个简单的示例,演示了如何在Angular 6中创建一个响应式表单日期时间选择器。你可以根据自己的需求进行调整和扩展。