我正在使用Moment
,Moment Locale
和Moment Timezone
插件来支持Bootstrap datetime calender插件的区域设置和时区。
我正在使用requireJs
,以下是我的配置文件的内容:
require.config({
baseUrl: '.',
paths: {
'jQuery': '../path to jQuery plugin',
'moment': '../path to moment js plugin',
'momentLocale':'../path to moment locale js plugin',
'momentTimeZone':'../path to moment timezone js plugin'
},
shim: {
'moment': {
deps: ['jQuery']
},
'momentLocale': {
deps: ['moment']
}
}
});
我还在垫片中跟踪link包含的区域设置,并使用moment
编辑时区库到momentLocale
以支持日历 locale 和时区。
我将语言环境值传递给返回默认语言环境的方法。 在我的应用程序中,我确实有很多语言,这些语言不受js的支持。为了解决这个问题,我正在维护映射表以返回支持时刻的语言。 (例如:如果我选择af_NA作为区域,它应该返回“af”作为语言。这是区域设置值的上下文切换案例.....
define([
'jQuery',
'moment',
'momentLocale'],
function(
$,
moment,
momentLocale ) {
getLocaleForCal: function(region) {
switch(region): {
case "af_NA":
case "af_ZA":
return "af";
break;
default:
return "en";
break;
}
}
};
});
以下是我传递给日历的选项
$(function() {
var currentRegion = this.getLocaleForCal("af_NA");
$("#datetimepicker2").datetimepicker({
locale: moment.locale(currentRegion)
});
});
默认情况下,语言环境显示为“en”,而不是“af”。因为当前区域设置没有加载,因为它正在使用“en”设置值。
我做错了什么,如何解决?
提前致谢。
答案 0 :(得分:0)
我遇到了同样的问题。我刚刚添加了关于moment-timezone-with-data-2010-2020.js file的新参考资料,它对我来说很好。所以我的建议是在moment.js文件之前添加此文件的引用/要求。