date-fns:如何定义应用程序范围内的默认区域设置?

dar*_*ong 7 javascript date-fns

在每个函数调用的基础上设置区域设置非常简单:

import { formatRelative, subDays } from 'date-fns'
import { ptBR } from 'date-fns/locale'

formatRelative(subDays(new Date(), 3), new Date(), { locale: ptBR })
Run Code Online (Sandbox Code Playgroud)

但是如何设置在应用程序范围内使用的默认区域设置?

Rei*_*r68 14

这已在版本 2.29 中发布:https ://date-fns.org/v2.29.0/docs/setDefaultOptions

// Set global locale:
var setDefaultOptions = require('date-fns/setDefaultOptions')
import { es } from 'date-fns/locale'
setDefaultOptions({ locale: es })
Run Code Online (Sandbox Code Playgroud)


t1m*_*m0n 5

据我所知,没有这样的选择。通常,我围绕函数创建自定义包装函数formatDate并传递应用程序区域设置。您可以将区域设置存储在全局变量或应用程序级别存储中:

formatRelativeWrap.js

import { formatRelative } from 'date-fns'
import AppStore from 'appStore'

export default (date1, date2, locale) => {
    return formatRelative(date1, date2, { locale: locale || AppStore.defaultLocale})
}

Run Code Online (Sandbox Code Playgroud)

正如@Pointy提到的,官方文档中有关于此的注释 - https://date-fns.org/v2.22.1/docs/I18n - 第二个示例。