jquery - 尝试本地化 jQuery 移动日期选择器输入

标签 jquery asp.net html jquery-ui jquery-mobile

我有一个 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: '&#x3c;Anterior',
        nextText: 'Pr&oacute;ximo&#x3e;',
        currentText: 'Hoje',
        monthNames: ['Janeiro','Fevereiro','Mar&ccedil;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&ccedil;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/

相关文章:

jquery - 当内容高度改变时扩展 Flickity 幻灯片的高度

php - jTable jQuery 插件 为什么我的 MySQL 存储过程失败?

asp.net - 日期在不同的数据库上表现不同?

asp.net - 为什么我的网页控件为空?

javascript - 在字符串中显示下载的 html

javascript - Jssor Fade 幻灯片无法正常工作

javascript - JQgrid:单击 JQgrid header 时是否会触发任何事件?

asp.net - 如何更改javascript :__doPostBack Url to full Url

html - jsf 页面上的 css 样式无法在服务器上正确呈现

javascript - 如何为 javascript 弹跳球创建可调整大小的 html5 Canvas ?