Angular-Material 将日期选择器设置为仅在 Angular7 中日期

ayo*_*aye 5 angular-material angular

我正在使用 Angular-7 进行门户网站应用程序。我有一个材质日期选择器,我只想从中获取没有时间戳的日期。它还应该采用以下格式:dd/mm/yyyy

这是它在前端的显示方式:

日期选择器

<div class="col-xs-6">
  <label for="loading_date">Loading Date</label>
  <div class="input-group date">
    <mat-form-field>
      <input matInput [matDatepicker] = "picker" placeholder = "Choose a date" name="loading_date" [(ngModel)]="quoteModel.loading_date" #loading_date="ngModel" [ngClass]="{'is-invalid' : loading_date.invalid && ((loading_date.dirty || loading_date.touched) || quoteform.submitted)}"   required>
     <mat-datepicker-toggle matSuffix [for] = "picker"></mat-datepicker-toggle>
     <mat-datepicker #picker></mat-datepicker>
    </mat-form-field>
  <div class="form-feedback" *ngIf="loading_date.invalid && ((loading_date.dirty || loading_date.touched) || quoteform.submitted)">
  <div style="color:red;" *ngIf="loading_date.errors?.required"class="alert alert-danger">Loading Date is required.</div>
  </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

当我提交到数据库时,我想得到以下格式的结果:

2019-09-26

但这就是我得到的:

2019-09-26T23:00:00.000Z

我该如何实现这一目标?

A.k*_*ifa 6

你可以用moment它来实现这一点;

npm i moment --save
Run Code Online (Sandbox Code Playgroud)

尝试这个

var dateToDB = moment(loading_date).format("YYYY-MM-DD");
Run Code Online (Sandbox Code Playgroud)

或者您可以使用 DatePipe

@Injectable()
import { DatePipe } from '@angular/common';
class MyService {

  constructor(private datePipe: DatePipe) {}

  transformDate(date) {
    var dateToDBthis.datePipe.transform(date, 'yyyy-MM-dd'); 
  }
}
Run Code Online (Sandbox Code Playgroud)

在你的 app.module.ts 中

providers: [DatePipe,...] 
Run Code Online (Sandbox Code Playgroud)

  • 请注意,不建议将 moment.js 用于新项目,请参阅 [moment.js 项目状态](https://momentjs.com/docs/#/-project-status/) 了解更多信息。 (3认同)