我在网络应用程序中使用 jQuery datepicker,并且允许最终用户选择他们的语言。对于日期选择器,我正在加载区域设置文件(翻译文件),一切正常。
我的问题是:
我如何从 jQuery 数据选择器语言文件中读取和使用月份名称、日期名称等。例如 datepicker-de.js 文件如下所示:
/* German initialisation for the jQuery UI date picker plugin. */
/* Written by Milian Wolff (mail@milianw.de). */
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
// AMD. Register as an anonymous module.
define([ "../datepicker" ], factory );
} else {
// Browser globals
factory( jQuery.datepicker );
}
}(function( datepicker ) {
datepicker.regional['de'] = {
closeText: 'Schließen',
prevText: '<Zurück',
nextText: 'Vor>',
currentText: 'Heute',
monthNames: ['Januar','Februar','März','April','Mai','Juni',
'Juli','August','September','Oktober','November','Dezember'],
monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun',
'Jul','Aug','Sep','Okt','Nov','Dez'],
dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'],
dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'],
dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'],
weekHeader: 'KW',
dateFormat: 'dd.mm.yy',
firstDay: 1,
isRTL: false,
showMonthAfterYear: false,
yearSuffix: ''};
datepicker.setDefaults(datepicker.regional['de']);
return datepicker.regional['de'];
}));
我想读取月份名称和日期名称并在另一个脚本中使用它。为所有日期选择器语言创建一个新的对象/文件并不是一种选择,
谢谢
最佳答案
您可以使用 date toLocaleString 方法
下面的示例均按照问题采用 de
语言环境
长月份名称
const longmonths = Array.from({length:12}, (_, m) =>
new Date(2019, m, 1).toLocaleString('de', {month:'long'})
);
console.log(longmonths);
短短几个月
const shortmonths = Array.from({length:12}, (_, m) =>
new Date(2019, m, 1).toLocaleString('de', {month:'short'})
);
console.log(shortmonths);
注意:对于星期几,我选择了 2019 年 7 月,因为 2019 年 7 月 1 日是星期一
一周中的长日(周日 -> 周六)
const longdow = Array.from({length:7}, (_,d) =>
new Date(2019, 6, d).toLocaleString('de', {weekday:'long'})
);
console.log(longdow);
一周中的短日(星期日 -> 星期六)
const shortdow = Array.from({length:7}, (_,d) =>
new Date(2019, 6, d).toLocaleString('de', {weekday:'short'})
);
console.log(shortdow);
关于javascript - 如何从 jQuery UI Datepicker 语言文件中读取月份名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57605889/