2010-12-10 44 views
4

我有一个jQuery UI日期选择器,我期待本地化返回的日期,然后格式化为 删除前导零。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”?可以做到两者吗?

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

回答

0

setDate接受Date对象是区域独立的参数。

设置日期选择器的当前日期。新日期可以是日期对象或当前日期格式的字符串(例如'01/26/2009'),距离今天的天数(例如+7)或者一串值和句点('y'表示年,'m'为几个月,'w'为几周,'d'为天,例如'+ 1m + 7d'),或者为null以清除选定的日期。

0

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

+0

该主题讨论缺少语言文件(jquery-ui-datepicker- [languageCode] .js)。 OP声明情况并非如此 – 2011-08-22 14:40:09

0

我相信这是因为你已经与国产化的唯一选择初始化的日期选择器。如果您不希望该区域是动态的或想要设置日期选择器的初始状态,请尝试在一个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()]); 
}); 
+0

第一个选项导致语法无效。第二个不考虑格式 – 2011-08-22 14:40:54

1

我遇到了同样的问题。我的解决办法:(区域设置在阵列中,简单地增加一些值)

var defaults = $.datepicker.regional['<%= mylanguage %>']; 
defaults['dateFormat'] = 'm/d/yy'; 
$("#mytxtbox").datepicker(defaults); 
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()); 
       } 
      }); 
0

也许为时已晚,但是,正如我做了一些Google的研究,我来到这里后,我发布了我的解决方案。 我猜你有一个输入型的日期选择,如:

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

如果您需要根据您的访客,并为进一步traitment预定义的日期格式设置区域设置语言,你可以启动你的日期选择如下:

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

它会改变英文默认格式,即mm/dd/yy。

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

相关问题