我有一个 jQuery 移动日期选择器(比如 here ),使用 <input type="date" />
它需要能够根据语言环境以适当的格式显示日期。
默认情况下,日期选择器日历以英式-英式格式显示在日期中 (dd-mm-yyyy)
.有时,该服务会有美国用户,因此希望显示为美国格式 (mm-dd-yyyy)
.
区域设置在网站的配置中定义,使用 globalization culture
属性。
理想情况下,日期选择器需要响应配置中的区域设置,而不是用户的设置。
所以,这不是语言等问题。一旦选择日期并显示给用户,只需在输入区域中设置格式即可。 由于某些本地化功能,在配置中设置文化可以完美地格式化网站其他地方的日期字符串,当显示为字符串时。只有在日期选择器中,这是一个问题。
编辑:那么,问题是 - 是否可以更改日期选择器输入显示日期的格式?
编辑 2:仔细查看后,日期格式似乎由用户的本地设置决定,不能被覆盖。一定是这样吗? 如果是这样,有什么办法可以测试这个功能吗?我曾尝试将我的本地设置更改为美国,但到目前为止没有看到输出发生任何变化。如果我知道它以这种方式成功运行,那么运行它可能就足够了。
编辑 3:我现在已经能够成功测试当本地系统设置更改时格式更改。这样做应该没问题。 谢谢!
最佳答案
稍微研究一下代码(好的,不是很少,而是很多!),我能够用这段代码解决问题:
/* Brazilian initialisation for the jQuery UI date picker plugin. */
/* Written by Leonildo Costa Silva (leocsilva@gmail.com). */
jQuery(function($){
$.datepicker.regional['pt-BR'] = {
closeText: 'Fechar',
prevText: '<Anterior',
nextText: 'Próximo>',
currentText: 'Hoje',
monthNames: ['Janeiro','Fevereiro','Março','Abril','Maio','Junho',
'Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'],
monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun',
'Jul','Ago','Set','Out','Nov','Dez'],
dayNames: ['Domingo','Segunda-feira','Terça-feira','Quarta-feira','Quinta-feira','Sexta-feira','Sabado'],
dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sab'],
dayNamesMin: ['Dom','Seg','Ter','Qua','Qui','Sex','Sab'],
weekHeader: 'Sm',
dateFormat: 'dd/mm/yy',
firstDay: 0,
isRTL: false,
showMonthAfterYear: false,
yearSuffix: ''
};
$.datepicker.setDefaults($.datepicker.regional['pt-BR']);
$.mobile.date.prototype._setOptions($.datepicker.regional['pt-BR']);
$(":jqmData(role='date')").datepicker('destroy');
$(":jqmData(role='date')").datepicker();
});
上面代码的重要和附加部分(它发挥了魔力)是这样的:
$.mobile.date.prototype._setOptions($.datepicker.regional['pt-BR']);
$(":jqmData(role='date')").datepicker('destroy');
$(":jqmData(role='date')").datepicker();
关于jquery - 尝试本地化 jQuery 移动日期选择器输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13562540/