加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Material Angular 6 DatePicker在前一天解析我的日期

发布时间:2020-12-17 07:11:21 所属栏目:安全 来源:网络整理
导读:当前版本的Material Angular DatePicker发生了一些非常奇怪的事情,在我将它从A5更新到A6之后,它开始在1天之前解析我的日期,示例在这里: https://stackblitz.com/edit/angular6-datepicker-parsing-wrong-date 我正在使用原始文档示例,对我自己的语言稍有改
当前版本的Material Angular DatePicker发生了一些非常奇怪的事情,在我将它从A5更新到A6之后,它开始在1天之前解析我的日期,示例在这里: https://stackblitz.com/edit/angular6-datepicker-parsing-wrong-date

我正在使用原始文档示例,对我自己的语言稍有改变语言,并将自定义日期值应用于ngModel,以便它可以解析.

但你可以在这里查看代码:

import {Component} from '@angular/core';
import {MAT_MOMENT_DATE_FORMATS,MomentDateAdapter} from '@angular/material-moment-adapter';
import {DateAdapter,MAT_DATE_FORMATS,MAT_DATE_LOCALE} from '@angular/material/core';

@Component({
  selector: 'datepicker-locale-example',templateUrl: 'datepicker-locale-example.html',styleUrls: ['datepicker-locale-example.css'],providers: [
    {provide: MAT_DATE_LOCALE,useValue: 'pt'},//my change from the original documentation example
    {provide: DateAdapter,useClass: MomentDateAdapter,deps: [MAT_DATE_LOCALE]},{provide: MAT_DATE_FORMATS,useValue: MAT_MOMENT_DATE_FORMATS},],})
export class DatepickerLocaleExample {
  constructor(private adapter: DateAdapter<any>) {}

  private someDate = '2018-01-31'; //my change from the original documentation example

  french() {
    this.adapter.setLocale('fr');
  }
}

HTML:

<mat-form-field>
  <input matInput [matDatepicker]="myDatePicker" placeholder="Different locale" [(ngModel)]="someDate"> <!-- my change from the original documentation example -->
  <mat-datepicker-toggle matSuffix [for]="myDatePicker"></mat-datepicker-toggle>
  <mat-datepicker #myDatePicker></mat-datepicker>
  <mat-hint>Actual Date: {{someDate}}</mat-hint>
</mat-form-field>

<button mat-button (click)="french()">Dynamically switch to French</button>

有谁知道如何解决这个问题?

解决方法

因此,经过一些研究后我发现这是一个时区问题.要临时修复它,我不得不将T00:00:00连接到我的日期结束,该日期来自后端,格式为yyyy / MM / dd.

如果可能,最好的选择是将后端格式更改为yyyy / MM / ddTHH:mm:ss.

否则,当您必须在Angular 6 Material DatePicker中使用格式yyyy / MM / dd时,有两个选项可以解决问题:te bad and good.

>坏(可能只是暂时的)就是做我做的事情,将T00:00:00连接到DatePicker解析它之前的日期结束.
>好处是实际获取日期字符串,将其转换为日期,将时区转换为GMT,然后允许DatePicker解析它.

我希望我能像我一样帮助绝望的人.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读