我当前正在将日期发送到电子邮件模板,我需要根据收件人的语言设置这些日期的格式。 我正在使用 toLocaleString() 函数,它对英语很有魅力,但对我尝试过的其他语言则不然。
我尝试使用 moment 或 luxon 来格式化日期,但我想我的代码在某种程度上是错误的,或者它们都依赖于普通的 toLocaleString() 函数,因为我遇到了同样的问题。
我的 .js 文件:
let options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };
return email.send({
template: 'file-expiration',
message: {
to: to,
},
locals: {
fileUuid: fileUuid,
expireAt: expireAt.toLocaleString('fr-FR', options),
locale: 'fr',
},
});
我的 .pug 文件:
= `${t('mail.file_expiration.line_1', {name: `${name}`, expireAt: `${expireAt}`})}`
预期:
en-US:2019 年 9 月 22 日星期日
与 fr-FR:dimanche 2019 年 9 月 22 日
实际:
en-US:2019 年 9 月 22 日星期日
FR-FR:2019 年 9 月 22 日,周日
我还尝试了“it-IT”和“es-ES”,结果与“fr-FR”相同
有人有想法吗? 提前致谢
最佳答案
感谢那些评论的人,特别是@VLAZ和@User862,因为他们帮助我找到了解决方案。
他们的评论帮助我了解到我的问题来自于我的 Node 安装,该安装仅使用“en-US”语言环境构建。
只需使用 intl 就可以解决所有问题填充。
非常感谢!
关于javascript - myDate.toLocaleString() 的格式不适合英语以外的任何其他语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58008896/