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

4

我有一个jQuery UI日期选择器,希望将返回的日期本地化并格式化,以去除前导零。

看起来我只能做其中之一。有没有办法同时本地化和格式化日期?

我的示例代码:

//  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”?是否可能两者兼顾? 请注意,我已经包含了所有适当的区域文件。
5个回答

1
我遇到了同样的问题。我的解决方案是:(区域设置在数组中,只需添加一些值)
var defaults = $.datepicker.regional['<%= mylanguage %>'];
defaults['dateFormat'] = 'm/d/yy';
$( "#mytxtbox" ).datepicker( defaults );

0
或许已经有点晚了,但我做了一些谷歌搜索后来到了这里,现在发布我的解决方案。我猜你有一个日期选择器的输入类型,例如:

<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上对我有效。


0

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

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

如果你想让它变得动态,可以类似于jQuery UI 示例

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

//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()]);
});

第一选项导致无效语法。第二个选项没有考虑格式。 - Boris Callens

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

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接