我正在使用 jQuery UI DateRangePicker (reference)。 我希望这个日期范围选择器有 3 种语言版本(荷兰语、法语和英语)。
我将使用 switch 语句来设置日历的设置。
switch(curr_lang) {
case 'nl':
moment.locale('nl');
var daterangepicker = $("#search-vac-daterange").daterangepicker(
{
initialText : 'Selecteer datums',
dateFormat: 'd MM yy',
datepickerOptions: {
minDate: new Date(),
startDate: new Date(),
maxDate: '+2y'
},
presetRanges: [{
text: 'Vandaag',
dateStart: function() { return moment() },
dateEnd: function() { return moment() }
}, {
text: 'Volgende 7 dagen',
dateStart: function() { return moment() },
dateEnd: function() { return moment().add(7, 'days') }
}, {
text: 'Volgende 30 dagen',
dateStart: function() { return moment() },
dateEnd: function() { return moment().add(30, 'days') }
}, {
text: 'Volgende 6 maanden',
dateStart: function() { return moment()},
dateEnd: function() { return moment().add(6, 'months') }
}, {
text: 'Volgend jaar',
dateStart: function() { return moment() },
dateEnd: function() { return moment().add(1,'years') }
}]
}
);
break;
}
日期显示为
18 January 2019 - 17 February 2019
未选择使用 moment 设置的语言环境,结果始终为英语(默认)。
注意:我没有设法让 minDate 和 startDate 与 moment() 一起使用,所以如果有人对此有线索的话。请帮帮我!
最佳答案
所以我建议的是以下示例:
var cl = "en";
$(function() {
var drp = $("#search-vac-daterange").daterangepicker({
datepickerOptions: $.extend({
minDate: new Date(),
startDate: new Date(),
maxDate: '+2y'
}, $.datepicker.regional[cl])
});
var cdrp = drp.data("comiseoDaterangepicker");
console.log(drp, cdrp);
});
工作示例:https://jsfiddle.net/Twisty/c5db9rng/20/
所以这增加了本地化。如果我们查看 DatePicker 示例中的步骤,他们建议执行以下操作:
$( selector ).datepicker( $.datepicker.regional[ "fr" ] );
或者:
$( selector ).datepicker( "option", $.datepicker.regional[ "fr" ] );
Each localization is contained within its own file with the language code appended to the name, e.g.,
jquery.ui.datepicker-fr.js
for French. The desired localization file should be included after the main datepicker code. Each localization file adds its options to the set of available localizations and automatically applies them as defaults for all instances. Localization files can be found at https://github.com/jquery/jquery-ui/tree/master/ui/i18n.
因此,了解这一点也很重要。因此,对于您的代码,我建议如下。
$(function() {
switch (curr_lang) {
case 'nl':
moment.locale('nl');
var daterangepicker = $("#search-vac-daterange").daterangepicker({
initialText: 'Selecteer datums',
dateFormat: 'd MM yy',
datepickerOptions: $.extend({
minDate: new Date(),
startDate: new Date(),
maxDate: '+2y'
}, $.datepicker.regional[curr_lang]),
presetRanges: [{
text: 'Vandaag',
dateStart: function() {
return moment()
},
dateEnd: function() {
return moment()
}
}, {
text: 'Volgende 7 dagen',
dateStart: function() {
return moment()
},
dateEnd: function() {
return moment().add(7, 'days')
}
}, {
text: 'Volgende 30 dagen',
dateStart: function() {
return moment()
},
dateEnd: function() {
return moment().add(30, 'days')
}
}, {
text: 'Volgende 6 maanden',
dateStart: function() {
return moment()
},
dateEnd: function() {
return moment().add(6, 'months')
}
}, {
text: 'Volgend jaar',
dateStart: function() {
return moment()
},
dateEnd: function() {
return moment().add(1, 'years')
}
}]
});
break;
}
});
半工作示例:https://jsfiddle.net/Twisty/c5db9rng/24/
该示例没有语言文件,因此不会给出正确的结果,但代码按预期工作。
希望对您有所帮助。
关于javascript - 如何本地化 jQuery UI DateRangePicker?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54258201/