用法
支持 I18n 的函数只有几个:
- format
- formatDistance
- formatDistanceStrict
- formatRelative
要使用语言环境,您需要引入它,然后将其作为选项传递给函数:
javascript
import { formatDistance } from 'date-fns';
// 需要世界语区域设置
import { eo } from 'date-fns/locale';
const result = formatDistance(
new Date(2016, 7, 1),
new Date(2015, 0, 1),
{ locale: eo } // 将语言环境作为选项传递
);
//=> 'pli ol 1 jaro'
要求并传递语言环境作为选项似乎很复杂,但与 Moment.js 不同,默认情况下,date-fns 会用所有语言环境使您的构建变得臃肿,迫使开发人员在需要时手动要求语言环境。
为了使 API 简单,我们鼓励您编写小型包装器并使用这些包装器代替原始函数:
javascript
// app/_lib/format.js
import { format } from 'date-fns';
import { enGB, eo, ru } from 'date-fns/locale';
const locales = { enGB, eo, ru };
// 通过为 `formatStr` 提供默认字符串 'PP' 或其任何变体
// 它将以适合当地环境的方式格式化日期
export default function (date, formatStr = 'PP') {
return format(date, formatStr, {
locale: locales[window.__localeId__] // 或者 global.__localeId__
});
}
// 然后:
import format from 'app/_lib/format';
window.__localeId__ = 'enGB';
format(friday13, 'EEEE d');
//=> 'Friday 13'
window.__localeId__ = 'eo';
format(friday13, 'EEEE d');
//=> 'vendredo 13'
// 如果省略格式字符串,则将采用语言环境的默认值。
window.__localeId__ = 'enGB';
format(friday13);
//=> Jul 13, 2019
window.__localeId__ = 'eo';
format(friday13);
//=> 2019-jul-13