gpt4 book ai didi

angular - MdDatepickerModule - 欧洲格式

转载 作者:行者123 更新时间:2023-12-02 11:14:17 25 4
gpt4 key购买 nike

我使用 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

此错误已报告给 Material 团队,并由以下 issue 进行跟踪.

关于angular - MdDatepickerModule - 欧洲格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45524993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com