Angular Material Datepicker回历日期显示异常问题求助
Angular Material Datepicker 使用 ar-SA 区域设置时日期偏移问题
问题现象
- 使用ar-SA locale时,日期显示向后偏移两个月,与实际日期不符
- 选择日期后,文本框显示正确的当日日期,但日期选择器内部显示的日期与所选日期不一致
问题诊断
- 该问题源于Angular Material Native日期适配器(继承自JavaScript Date对象)不支持回历(Hijri)日期,对应GitHub Issue #27429
- 使用
ngx-angular-material-hijri-adapter回历适配器可解决显示问题,但无法支持用户在公历/回历间无缝切换
复现步骤
- 环境:Angular 15.2.9,CDK/Material 15.2.1,Google Chrome浏览器,Windows 11操作系统
- 配置Datepicker使用ar-SA区域设置
- 选择当日日期,可观察到文本框日期正确,但日期选择器内显示错误偏移的日期
预期与实际行为
- 预期:日期选择器与文本框显示的日期完全一致
- 实际:日期选择器内显示的日期存在偏移,与所选日期不符
解决方案建议
- 实现可动态切换的日期适配器,根据用户选择的日历类型(公历/回历)在原生适配器与回历适配器间切换
- 扩展
ngx-angular-material-hijri-adapter回历适配器,使其同时支持公历区域设置,实现两种日历的无缝切换
内容的提问来源于stack exchange,提问作者iiDeSTRoYeR
相关产品推荐
相关产品推荐

