【发布时间】:2018-04-26 13:50:03
【问题描述】:
我正在我们的应用程序上下文中评估 DateFns 和 Moment,并发现 DateFns 中似乎有一个重要的遗漏。
在 Moment 中,区域设置支持允许您格式化日期或时间的区域设置正确表示。例如,日期格式“LL”和“L”将为英语语言环境生成以下内容:
November 27, 2017
11/27/2017
以下是西班牙语语言环境:
27 de noviembre de 2017
27/11/2017
请特别注意,在第二个示例中,在英语中,月份在日期之前,而在西班牙语中,日期在月份之前。这正是您希望语言环境代码为您处理的事情。这就是语言环境在几乎所有日期时间库(C++、C#、Java、Python 等)中的工作方式
在 DateFns 中,似乎没有 format option for locale-correct long date, short date, time, etc.。他们给出的使用语言环境的示例要求您将特定于语言环境的格式字符串传递给它:
// Represent 2 July 2014 in Esperanto:
var eoLocale = require('date-fns/locale/eo')
var result = format(
new Date(2014, 6, 2),
'Do [de] MMMM YYYY',
{locale: eoLocale}
)
换句话说,我需要知道我支持的每个语言环境的日期/时间格式,这违背了首先支持语言环境的目的。]
我可以使用 Javascript 的 toLocaleString,但我的应用程序以两种不同的方式管理语言环境。
有没有什么方法可以打印出特定语言环境的“短日期”,而无需我告诉 DateFns 该语言环境的格式是什么?
【问题讨论】:
-
它应该在
date-fns@2.0.0可用(尚未发布,alpha-7版本正在进行中)date-fns.org/v2.0.0-alpha.7/docs/format -
也许您可以使用developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… 作为替代方案。