18

我正在使用角度材料的日期选择器。我想设置一个默认值,但它没有显示该值。

<mat-form-field class="mr-sm-24" fxFlex (click)="open()" >
   <input matInput [picker]="picker" placeholder="Date"
                  autocomplete="off"
                  name="date" 
                  formControlName="date">
   <mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
   <mat-datepicker  [startAt]="startDatePicker" #picker></mat-datepicker>
</mat-form-field>

这是我想要设置为默认值的 .js 代码

var date = this.datepipe.transform((new Date().getTime()) - 3888000000, 'dd/MM/yyyy'); 

this.form = this.formBuilder.group({
        dataInicial: [data_inicial],
                   ...
4

8 回答 8

19

这对我有用!

HTML-

<mat-form-field>
    <input matInput [matDatepicker]="picker1" placeholder="From Date" [formControl]="date1">
    <mat-datepicker-toggle matSuffix [for]="picker1"></mat-datepicker-toggle>
    <mat-datepicker  #picker1></mat-datepicker>
</mat-form-field>

TS-

date1 = new FormControl(new Date())
于 2019-07-18T12:39:39.670 回答
17

您需要为 startAt 更改提供一个 Date 对象,如下所示:

在 .ts 中:

date = new Date((new Date().getTime() - 3888000000));

在 html 中:

<mat-datepicker  [startAt]="date" #picker></mat-datepicker>

这里有一个工作演示:https ://stackblitz.com/edit/angular-n9yojx

于 2018-10-14T05:36:45.633 回答
8

您可以在输入中使用定义的 formControl。

这是html

<mat-form-field class="mr-sm-24" fxFlex (click)="open()" >
    <input [matDatepicker]="picker" matInput placeholder="Date" autocomplete="off" name="date" formControlName="date" [(ngModel)]="date.value">
    <mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
          <mat-datepicker #picker></mat-datepicker>
</mat-form-field>

这里是 TS 声明你 formControl

date: FormControl;
this.date = new FormControl(new Date(<you can provide you date input field if you getting date from other sources>))
于 2019-11-10T15:04:40.653 回答
3

在一组表单控制器中,您可以使用如下所示的默认日期。

 birthdayCtrl: ['1999-01-31']
于 2020-08-09T04:30:45.513 回答
1

下面是使用 Angular 10、Angular Material 10 和反应形式的工作代码

组件.ts

      this.youForm= this._formBuilder.group({


        StartDate: [new Date(), Validators.required],

      });

component.html 没有变化

  <mat-form-field appearance="outline">
            <input matInput [matDatepicker]="StartDate" placeholder="Start date *" 
              formControlName="StartDate">
            <mat-label>Start Date *</mat-label>
            <mat-datepicker-toggle matSuffix [for]="StartDate"></mat-datepicker-toggle>
            <mat-datepicker #StartDate></mat-datepicker>
          </mat-form-field>
于 2020-07-16T20:57:32.070 回答
1

使用模板驱动的方法,解决方案如下。

 selectedDate = new Date();
<input class="form-control"
                     matInput
                     [matDatepicker]="dp3"
                     [min]="today"
                     [max]="max"
                     disabled
                     [(ngModel)]="selectedDate"
                     (ngModelChange)="dateUpdated()"
                     name="currentDate"
                   />
                   <mat-datepicker-toggle
                     matSuffix
                     [for]="dp3"
                   ></mat-datepicker-toggle>
                   <mat-datepicker #dp3 disabled="false"></mat-datepicker> ```
于 2020-12-30T13:15:19.113 回答
0

在您的 .html 中----

     <mat-form-field style="width:150px;"  color="accent">
            <mat-label>Choose From Date</mat-label>
            <input  class="example-events" matInput [matDatepicker]="picker1"  [ngModel]="dateF" >
            <mat-datepicker-toggle matSuffix [for]="picker1"></mat-datepicker-toggle>
            <mat-datepicker #picker1 ></mat-datepicker>
     </mat-form-field>

在你的 .ts----

dateF:any=new Date();
于 2019-12-06T09:05:04.080 回答
-2

这是我的答案,

在你的 .html

<mat-form-field class="mr-sm-24" fxFlex (click)="open()" >
    <input [matDatepicker]="picker" matInput placeholder="Date" autocomplete="off" name="date" formControlName="date">
    <mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
          <mat-datepicker #picker></mat-datepicker>
</mat-form-field>

在你的 .ts

this.form = this.formBuilder.group({
   date: new FormControl(new Date()), // Current Date
               ...
});

这会将当前日期设置为默认日期。

于 2018-10-14T05:33:28.427 回答