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

angular – MdDatepickerModule – 欧洲格式

发布时间:2020-12-17 07:50:31 所属栏目:安全 来源:网络整理
导读:我使用MdDatePickerModule来选择日期但我有一个问题: 如果我选择8月5日,一切都还可以.但是,如果我重新打开选择,月份会变化并变为5月,如果我选择5月3日,我关闭,重新打开,则月份为3月.现在我知道问题在于,与欧洲相比,美国的月份和日期都是倒置的,但解决冲突的
我使用MdDatePickerModule来选择日期但我有一个问题:
如果我选择8月5日,一切都还可以.但是,如果我重新打开选择,月份会变化并变为5月,如果我选择5月3日,我关闭,重新打开,则月份为3月.现在我知道问题在于,与欧洲相比,美国的月份和日期都是倒置的,但解决冲突的“聪明”方式是什么.
谢谢
现在正确的做法是设置语言环境以及使用自定义适配器来正确解析日期.

TS:

import {Component} from '@angular/core';
import { NativeDateAdapter,DateAdapter,MD_DATE_FORMATS } from "@angular/material";

export class ItalianDateAdapter extends NativeDateAdapter {
  parse(value: any): Date | null {
    if ((typeof value === 'string') && (value.indexOf('/') > -1)) {
      const str = value.split('/');
      if (str.length < 2 || isNaN(+str[0]) || isNaN(+str[1]) || isNaN(+str[2])) {
        return null;
      }
      return new Date(Number(str[2]),Number(str[1]) - 1,Number(str[0]),12);
    }
    const timestamp = typeof value === 'number' ? value : Date.parse(value);
    return isNaN(timestamp) ? null : new Date(timestamp);
  }
}

@Component({
  selector: 'datepicker-overview-example',templateUrl: './datepicker-overview-example.html',styleUrls: ['./datepicker-overview-example.css'],providers: [{provide: DateAdapter,useClass: ItalianDateAdapter}],})
export class DatepickerOverviewExample {

  locale: string;

  constructor(private dateAdapter: DateAdapter<Date>) {
    this.locale = 'it';
    this.dateAdapter.setLocale('it');   
  }

}

Plunker demo

此错误已报告给材料团队,并由以下issue跟踪.

(编辑:李大同)

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

    推荐文章
      热点阅读