【问题标题】:Converting a date from one language to another将日期从一种语言转换为另一种语言
【发布时间】:2018-02-15 19:08:04
【问题描述】:

我有一个泰语约会:

31มี.ค.2017, 16:56:51

翻译成

Mar 31, 2017, 16:56:51

使用谷歌翻译。有没有办法,我可以使用 momentjs 语言环境支持来做到这一点?如果没有,还有其他出路吗?

【问题讨论】:

  • 语言 != 语言环境。纽约的泰国人可能希望以泰语语言显示他们的日期,但使用与美国/纽约 locale 相关联的时区。 ;-)
  • @RobG 好的。你能用答案解释这个吗?参考当前接受的答案,当我们写 m.locale('en') 时它意味着什么?
  • 这意味着编写 ECMA-402 的人误用了术语“语言环境”作为语言参数(它接受语言代码,而不是地区)。这种滥用随后被其他人继续,例如那些编写像moment.js这样的库,我猜想与规范的术语保持一致(我认为这是一个糟糕的决定)。但这并不意味着您必须在问题标题中效仿。 ;-)
  • @RobG 好的,编辑了标题。

标签: javascript date locale momentjs


【解决方案1】:

Momentjs 支持 i18n 并支持 Thai [th] 语言环境,您可以使用 moment(String, String, String) 解析您的输入。

然后您可以使用locale()format() 来显示使用英语语言环境的值。

这是一个工作示例:

var m = moment('31มี.ค.2017, 16:56:51', 'DDMMMMYYYY, HH:mm:ss', 'th');
console.log(m.locale('en').format('MMM DD, YYYY, HH:mm:ss')); // Mar 31, 2017, 16:56:51
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment-with-locales.min.js"></script>

【讨论】:

  • 太棒了。我曾想过使用翻译 API,但仍然坚信 momentjs 肯定会有解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-27
  • 2015-10-31
  • 1970-01-01
  • 2014-11-04
  • 2011-01-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多