问题描述
简介 所以我在Angular 9中使用owlDateTime来让用户选择时间范围:从该日期和时间到该日期和时间。我正在使用常规范围模式,反应形式:
<input matInput formControlName="dateTimeRangeControl"
[owlDateTime]="dt"
[owlDateTimeTrigger]="dt"
[selectMode]="'range'"
[max]="validCurrentDate">
问题 当用户在日历中选择两个日期时,对应的时间设置为当前时间。因此范围结束看起来像这样:[“ 2020-08-10T10:00”,“ 2020-08-11T10:00”]。两个字段中的时间相同。 如何更改此默认时间值?因此,它不是设置为当前时间,而是设置为当前时间+ 2小时?
TS
ngOnInit(): void {
this.form = this.formBuilder.group({
...
dateTimeRangeControl: [[]],});
}
submit(): void {
this.backEndService.post(this.form.value);
}
解决方法
您可以使用setHours()
和getHours()
方法来简单地设置小时数。
import { Component } from '@angular/core';
@Component({
selector: 'my-app',styleUrls: ['./app.component.scss'],templateUrl: './app.component.html',})
export class AppComponent {
myDate = new Date();
constructor(){
this.myDate.setHours(this.myDate.getHours() + 2);
}
}
根据您的更新,我了解日期选择器设置值本身。此配置应有帮助,
component.html
<div class="input-wrapper">
<label>Date Time Range:</label>
<input [(ngModel)]="dateRange " [selectMode]="'range'"
[owlDateTimeTrigger]="dtPicker1" [owlDateTime]="dtPicker1">
<owl-date-time #dtPicker1></owl-date-time>
</div>
component.ts
export class AppComponent {
dateRange = [];
constructor(){
const date = new Date();
this.dateRange = [date,new Date(date.getFullYear(),date.getMonth(),date.getDate())];
}
}
我的推荐人在这里,在此页面中用关键字Use with @angular/forms搜索