b-a*_*saf 6 locale momentjs react-native
我正在使用React Native版本0.45.1和当前版本2.18.1.
我正在尝试根据本地设备更改日期,但我总是在'en-Us'区域设置中获取日期.我无法导入所有语言环境,就像我在某些解决方案中看到的那样,因为我事先并不知道设备语言环境.(例如:https://github.com/moment/moment/issues/2962)
还有其他选择吗?
Mic*_*eng 21
我无法导入所有语言环境,就像我在某些解决方案中看到的那样,因为我事先并不知道设备语言环境.
实际上,您可以像这样导入所有语言环境(moment-with-locales在主页上提到):
import moment from 'moment/min/moment-with-locales'
// Or if you are using require instead:
var moment = require('moment/min/moment-with-locales')
Run Code Online (Sandbox Code Playgroud)
然后,您应该能够使用您喜欢的任何模块/方法获取您的设备区域设置(在我的示例中,我将使用Expo)并将当前区域设置更改为它.例如:
var deviceLocale = await Expo.Util.getCurrentLocaleAsync()
moment.locale(deviceLocale)
Run Code Online (Sandbox Code Playgroud)
我不会说导入所有东西是处理它的最佳方法,因为它moment-with-locales不仅仅是moment,但它完成了你想要它完成的任务.您也可以按照我所链接的Github评论中提到的那样只导入您支持的语言环境.
我没有按语言环境导入语言环境,而是使用此解决方案来全局设置语言环境:
import { getDeviceLocale } from "react-native-device-info";
import moment from "moment";
import "moment/min/locales";
const deviceLocale = getDeviceLocale();
moment.locale(deviceLocale); //set your locale (eg: fr)
moment(1316116057189).fromNow(); // il y a 7 ans
Run Code Online (Sandbox Code Playgroud)
分享给需要的人
| 归档时间: |
|
| 查看次数: |
6626 次 |
| 最近记录: |