javascript - myDate.toLocaleString() 的格式不适合英语以外的任何其他语言

标签 javascript node.js date localization

我当前正在将日期发送到电子邮件模板,我需要根据收件人的语言设置这些日期的格式。 我正在使用 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”语言环境构建。

我发现了这个:https://techoverflow.net/2018/09/19/fixing-nodejs-intl-datetimeformat-not-formatting-properly-for-locales/

只需使用 intl 就可以解决所有问题填充。

非常感谢!

关于javascript - myDate.toLocaleString() 的格式不适合英语以外的任何其他语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58008896/

相关文章:

php - javascript 如果负面条件不起作用

javascript - 如何使用 offsetWidth 和 offsetLeft 动态地将一个 div 置于另一个 div 的中心

javascript - 使用 nodejs + express 处理服务器端和客户端错误的最佳方法是什么

mysql - DOB 字段的平均年龄 - MySQL/PHP

javascript - 获取日期选择器中选择的所有日期

javascript - 选中导航选项卡中的所有复选框

javascript - 无法从显示为 : flex 的父 div 获取 "left"值

javascript - 如何在 Jest 中模拟嵌套函数?

javascript - 使用 Casperjs 的两个标签检索内容

java - 如何将时间值设置为 00 :00:00 in the dateformat such as Tue Dec 28 17:36:28 IST 2010?