jQuery UI日期选择器的格式化输出

28

我在尝试格式化jQuery UI日期选择器的输出时遇到了问题。

我希望日期格式为ISO 8601格式,就像这里解释的那样:

http://jqueryui.com/demos/datepicker/#date-formats

这是我的代码:

$.datepicker.setDefaults($.datepicker.regional['nl']);
$('.datepicker').datepicker('option', {dateFormat: 'yy-mm-dd' });
3个回答

39

你的选项设置器格式有些不对,请尝试这样:

$('.datepicker').datepicker('option', 'dateFormat', 'yy-mm-dd');

查看页面上的选项面板,以了解如何以此方式设置每个选项

在创建选择器之前全局设置时,请执行以下操作:

$.datepicker.setDefaults($.datepicker.regional['nl']); 
$.datepicker.setDefaults({ dateFormat: 'yy-mm-dd' });
//Later..
$('.datepicker').datepicker();

同时,请确保包含你的区域文件,否则$.datepicker.regional['nl']没有任何意义,在尝试将默认值设置为你的区域之前,需要先包含该文件:

http://jquery-ui.googlecode.com/svn/trunk/ui/i18n/

我尝试过了,但它不起作用。我正在按照以下步骤进行操作: $('#datepicker').datepicker('option', {dateFormat: $(this).val()}); 在我给你的演示链接的源代码视图中。 - Sam Vloeberghs
3
在执行此操作时,日期选择器是否已打开?这只影响到$('.datepicker')上创建的日期选择器,如果在页面初始化之前执行此操作,请使用以下命令:$.datepicker.setDefaults({ dateFormat: 'yy-mm-dd' });(在当前的setDefaults调用之后)。 - Nick Craver
$.datepicker.setDefaults($.datepicker.regional['nl']); $.datepicker.setDefaults({ dateFormat: 'yy-mm-dd' }); $('.datepicker').datepicker(); 谢谢!这就可以了。 - Sam Vloeberghs
@Sam - 非常好,+1并欢迎来到SO,现在你可以投票了 :) 我会编辑这个答案,让下一个遇到你问题的人更快地找到解决方案。 - Nick Craver
1
明白了!最好在最终答案中提到人们仍然需要包含日期选择器的区域文件。该文件位于此处:http://jquery-ui.googlecode.com/svn/trunk/ui/i18n/。 - Sam Vloeberghs
@Sam - 在运行之前,请确保包含了nl的区域文件:http://jquery-ui.googlecode.com/svn/trunk/ui/i18n/jquery.ui.datepicker-nl.js - Nick Craver

7
$( "#end_date" ).datepicker({ dateFormat: 'yy-mm-dd' });

对我来说,这是有效的方式


同样适用于我(jQuery 1.8.2 / UI 1.9.1)- 使用日期选择器类而不是ID。 - Alexander Holsgrove
这是一个很好的答案,因为我正在使用日历图标,传递其他选项,而这个答案处理了它。 - Andrew Koper

0

你也可以使用更短的方式:

$.datepicker.setDefaults(jQuery.extend(
    $.datepicker.regional['nl'],
    {
    dateFormat: 'yy-mm-dd'
    }
));

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