首页 > 解决方案 > 使用日期时间选择器获取没有时区的日期和时间

问题描述

我有一个带有日期时间选择器的表格,如下所示:

  <mat-form-field>
    <mat-placeholder>Time Window Start</mat-placeholder>
    <mat-datetimepicker-toggle [for]="datetimePickerStart" matSuffix></mat-datetimepicker-toggle>
    <mat-datetimepicker
      #datetimePickerStart
      type="datetime"
      openOnFocus="true"
      timeInterval="5">
    </mat-datetimepicker>
    <input
      matInput
      formControlName="datestart"
      [matDatetimepicker]="datetimePickerStart"
      required
      autocomplete="false">
  </mat-form-field>

我想要的是获得UTC时间,所以我也在我的app.module.ts

{
    provide: MAT_MOMENT_DATETIME_FORMATS,
    useValue: {useUtc: true}
},
{
    provide: MAT_MOMENT_DATE_ADAPTER_OPTIONS,
    useValue: {useUtc: true}
}

然后我得到这样的值:

var datestart: Moment = this.form.get('datestart').value;

但是当我输入一个日期时,假设 11 月 11 日下午 12:00,我得到的日期是 11 月 11 日晚上 10:00(输入中11/11/2020 10:00 PM的值是,返回的值this.form.get('datestart').value;2020-11-11T10:00:00.000Z)。我需要的是日期选择器返回给我2020-11-11T12:00:00.000Z。我怎么得到那个?

标签: angulartypescriptmomentjs

解决方案


我认为当你使用{useUtc: true}它时,它会占用你当前的时间并将其转换为 UTC,这使得 12PM 变为 10PM。
尝试不使用{useUtc: true}


推荐阅读