如何根据浏览器语言设置Jquery UI Datepicker日期格式?

时间:2014-04-18 11:50:28

标签: javascript jquery jquery-ui datepicker date-format

我想从浏览器语言设置Jquery UI DatePicker日期格式,例如,如果"英语(英国)"在谷歌浏览器中语言和输入设置... (chrome:// settings / languages),然后日期格式为 dd / mm / yyyy ,如果& #34;英语(美国)"在列表的顶部,日期格式应为 mm / dd / yyyy 。有没有办法在Chrome,Firefox和IE浏览器语言中设置日期格式......?

2 个答案:

答案 0 :(得分:2)

在你的情况下,我建议检查语言,如

var userLang = navigator.language || navigator.userLanguage; 
// detect browser language but not a decent one 
if (userLang === "en-US") {
  $( ".selector" ).datepicker( "option", "dateFormat", "mm/dd/yyyy" );
} else {
  $( ".selector" ).datepicker( "option", "dateFormat", "dd/mm/yyyy" );
}

<强>更新

我正在研究jQuery datepicker的本地化,这里有一个nice discussion和一个很好的插件。

jQuery-localization,它会检测语言并为其加载相应的区域语言

$.localise('js/jquery.ui.datepicker');
  

注意: 默认情况下,它会查看为浏览器设置的区域设置   根据请求指定包的本地化。对于   例如,如果区域设置是葡萄牙语/巴西(pt-BR),则会加载   js / jquery.ui.datepicker-pt.js和js / jquery.ui.datepicker-pt-BR.js。

答案 1 :(得分:1)

这就是我正在进行的当前项目中的工作方式。不确定它是否是最好的方法,因为我相信jQuery UI中有语言文件,但是...

var cfg = {
    container: '.datepicker',
    regional: {
        nl: {
            closeText: 'Sluiten',
            prevText: '←',
            nextText: '→',
            currentText: 'Vandaag',
            monthNames: ['januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december'],
            monthNamesShort: ['jan', 'feb', 'maa', 'apr', 'mei', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'],
            dayNames: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'],
            dayNamesShort: ['zon', 'maa', 'din', 'woe', 'don', 'vri', 'zat'],
            dayNamesMin: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'],
            weekHeader: 'Wk',
            dateFormat: 'dd-mm-yy',
            firstDay: 1,
            isRTL: false,
            showMonthAfterYear: false,
            yearSuffix: ''
        }
    }
};

// extracted activation function
$.datepicker.regional = $.extend({}, $.datepicker.regional, cfg.regional);
$.datepicker.setDefaults($.datepicker.regional.nl);
this.datepicker.datepicker();

因此,您可以在cfg对象中添加语言并选择自定义格式。 只剩下要做的就是将语言传递给datepicker(),动态。也许来自URL,cookie,会话,服务器变量......,取决于您的项目如何使用语言。

希望它有所帮助。