jQuery UI datepicker - 我可以格式化已本地化的日期吗?

时间:2010-12-10 15:44:04

标签: jquery localization datepicker date-format

我有一个jQuery UI datepicker,我希望本地化返回的日期,然后将其格式化为 删除前导零。

看来我可以做其中一个。有没有办法对它进行本地化和格式化?

我的示例代码:

//  myDate = 01/25/2010
//  myLanguage = "";  //for US english, but could be any language 

$('#mytxtbox').datepicker($.datepicker.regional['<%= mylanguage %>']);
$('#mytxtbox').datepicker({ dateFormat: 'm/d/yy' });

var dateToSet = $.datepicker.parseDate('m/d/yy', '<%= myDate %>');     
$('#mytxtbox').datepicker("setDate", dateToSet);

在上面的例子中,我的文本框中显示的日期是“01/25/2010”。 如果我注释掉设置区域的行,则格式化工作(即1/25/2010)。 在我看来,本地化正在覆盖我的“dateFormat”?是否有可能同时做到这两点?

请注意,我已包含所有适当的区域文件

6 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。我的解决方案:(区域设置在一个数组中,只需添加一些值)

var defaults = $.datepicker.regional['<%= mylanguage %>'];
defaults['dateFormat'] = 'm/d/yy';
$( "#mytxtbox" ).datepicker( defaults );

答案 1 :(得分:0)

setDate接受Date个对象作为与区域无关的参数。

  

设置datepicker的当前日期。新日期可以是Date对象或当前日期格式的字符串(例如'01 / 26/2009'),从今天开始的天数(例如+7)或一串值和句点('y'代表年,'m'持续数月,'w'持续数周,'d'持续数天,例如'+ 1m + 7d'),或null以清除所选日期。

答案 2 :(得分:0)

这听起来像你的问题 JQuery datepicker language

答案 3 :(得分:0)

我相信这是因为您已经初始化了datepicker,并将本地化作为唯一选项。如果您不希望该区域是动态的,或者想要设置日期选择器的初始状态,请尝试在一个options object中传递两个选项。

$("#mytxtbox")
  .datepicker({ 
    dateFormat: 'm/d/yy',  
    $.datepicker.regional['<%= mylanguage %>']
  });

如果你想要它是动态的,可以做类似于jQuery ui example的事情。

首先尝试格式化日期然后设置区域选项。

//original initialization
$("#mytxtbox").datepicker({dateFormat: 'm/d/yy'});
//then set localize the date based on a change function
$("ul.region").change({
 $("mytxtbox").datepicker('option', $.datepicker.regional[$(this).val()]);
});

答案 4 :(得分:0)

如果您正在进行区域性 beforeShow 或任何其他类似的功能,您可以将它全部集中在一起:

$("#mytxtbox").datepicker({dateFormat: 'dd-mm-y'},
    $.datepicker.regional[ "ar" ],
            {
                beforeShow: function(input, inst) {
                    var widget = $(inst).datepicker('widget');
                    widget.css('margin-left', $(input).outerWidth() - widget.outerWidth());
                }
            });

答案 5 :(得分:0)

也许为时已晚,但是,当我做了一些谷歌研究并来到这里时,我发布了我的解决方案。 我猜你有一个datepicker的输入类型,例如:

<input id="date" type="text" name="date">

如果您想根据访问者和预定义的日期格式设置区域设置语言以进一步设置特征,您可以按照以下步骤启动日期选择器:

      $(function() {
          $('#date').datepicker();
    $('#date').datepicker("option",$.datepicker.regional["<<your_variable_locale>>"]);
    $('#date').datepicker("option","dateFormat","dd/mm/yy");
});

它将更改英文默认格式,即mm / dd / yy。

关于如何组合区域和日期格式等选项的文档不是很清楚,但它适用于Firefox。