首页 > 解决方案 > 使用 moment.js 或日期管道为不同语言格式化日期 | 角度 9

问题描述

我有一个来自后端响应的日期字段,当我们手动更改浏览器语言时,格式会发生变化。例如,如果浏览器语言是法语,我从后端响应的日期将是这样的23 juin 202130 déc. 2020. 我必须在 UI 中格式化才能MM/DD/YYYY格式化。我的代码将其格式化为MM/DD/YYYY

let momentLocale= moment.locale(this.translateService.currentLang)
 schedule.startTime.dateText= moment(schedule.startTime.dateText).format("MM/DD/yyyy")

这是行不通的,它的设置值是无效的日期,schedule.startTime.dateText 我如何将日期格式化为MM/DD/YYYY不同语言的月份,并且当浏览器设置语言发生变化时语言会发生变化?是否需要 moment.js 或者我可以使用 Datepipe 来做到这一点?

标签: angulartypescriptmomentjslocaledate-pipe

解决方案


您需要导入moment要使用的语言环境并将输入格式传递给moment解析函数:

import 'moment/locale/fr';

...

let momentLocale = moment.locale(this.translateService.currentLang);
schedule.startTime.dateText= moment(schedule.startTime.dateText, "DD MMM YYYY").format("MM/DD/yyyy");

推荐阅读