Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript myDate.ToLocalString()的格式不适用于英语以外的任何其他语言_Javascript_Node.js_Date_Localization - Fatal编程技术网

Javascript myDate.ToLocalString()的格式不适用于英语以外的任何其他语言

Javascript myDate.ToLocalString()的格式不适用于英语以外的任何其他语言,javascript,node.js,date,localization,Javascript,Node.js,Date,Localization,我目前正在向电子邮件模板发送日期,我需要根据收件人的语言设置这些日期的格式。 我正在使用toLocaleString()函数,它对英语很有吸引力,但对我尝试过的其他语言却没有 我尝试使用moment或luxon格式化日期,但我猜要么我的代码有点错误,要么它们都依赖于vanilla toLocaleString()函数,因为我遇到了相同的问题 my.js文件: let options = { weekday: 'long', year: 'numeric', month: 'long', d

我目前正在向电子邮件模板发送日期,我需要根据收件人的语言设置这些日期的格式。 我正在使用toLocaleString()函数,它对英语很有吸引力,但对我尝试过的其他语言却没有

我尝试使用moment或luxon格式化日期,但我猜要么我的代码有点错误,要么它们都依赖于vanilla toLocaleString()函数,因为我遇到了相同的问题

my.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:2019年9月22日迪曼奇

阿克图尔:

  • 与en US:2019年9月22日(星期日)

  • 带fr fr:2019 M09 22,太阳

我还尝试了“it it”和“es-es”,结果与“fr-fr”相同

有人有主意吗?
提前感谢

感谢发表评论的人,特别是@VLAZ和@User862,因为他们帮助我找到了解决方案

他们的评论帮助我理解了我的问题来自于我的节点安装,它是用“en-US”语言环境构建的

我发现:

它通过简单地使用polyfill解决了所有问题


非常感谢

得到一个不同但仍然不正确的结果-使用您的日期和选项,它返回2019年9月22日星期日,即使该语言作为
fr
传入。Firefox使用与Chrome相同的代码返回“dimanche 2019年9月22日”。因此,我唯一的猜测是节点环境必须以某种方式配置更多的区域设置。没有可靠的方法可以在不询问用户的情况下确定用户的首选语言。即使这样,你也不知道他们喜欢的日期格式,所以也可以问一下。过去,允许用户为首选语言和格式设置首选项是很常见的,但由于某些原因,现在似乎已不再使用简单的系统。我觉得定位不令人满意,几乎毫无用处。它假设每个使用特定语言的人都想要特定格式的日期,这在现实中是不被支持的。希望这些有帮助,