Jquery日期选择器格式化日期无效。

24

这是我的代码:

$(function () {
    $("#datepicker").datepicker({ dateFormat: 'DD-MM-YY' });
});

日期时间选择器已显示,但格式为mm/dd/yyyy。 为什么它不起作用?


你看过这个吗:https://dev59.com/rnM_5IYBdhLWcg3wjj6r#1328040? - Jignesh Rajput
13个回答

32

只需尝试使用格式选项而不是日期格式

$('#datepicker').datepicker({
   format: 'dd-mm-yyyy' 
});

1
你也帮了我大忙。干杯! - Asad ullah
1
这个可以运行。尝试仅使用“format”选项而不是“dateFormat”,因为由于日期选择器的不同版本,它们可能会有所不同。 - shiv
1
谢谢,我的代码中dateFormat: 'dd-mm-yy'无法工作。格式是正确的。 - Mukhila Asokan
谢谢。在所有的示例中,它都显示为“dateformat”。 - AntiqTech
谢谢。在所有的例子中,都显示为“dateformat”。 - AntiqTech

15

根据所使用的datepicker版本不同,正确的格式可能为:

$('#datepicker').datepicker({ format: 'yyyy-mm-dd' });

14

试一下这个

$(".datepicker").datepicker({dateFormat: 'dd-mm-yy'});
小写字母也可以使用

12

这是默认设置,意味着它不识别你的选项。

尝试一下:

dateFormat: 'dd-mm-yy'
小写字母

3
虽然有点混淆,但是“yy”实际上代表4位数的年份。 - Luke
5
取决于使用哪种日期选择器及其发行版。不同的日期选择器对大写和小写字母y、d有不同的含义。每个人都想重新发明自己“特殊”的版本,而不是坚持strftime标准。而且是“format”还是“dateFormat”?只需继续摆弄,直到您“发现”特定作者认为哪种方法更“酷”为止。 - JosephK
3
完全同意!API文档非常清楚地指出这个属性是“dateFormat”,但在阅读了你的评论后,我尝试使用“format”它就开始起作用了。额外有趣的是,我需要使用“yyyy”来表示四位数的日期。是的,一致性胜利 :-/ - Jon
2
如果你发现使用“yyyy”而不是“yy”的“格式”对你有效,那么你可能实际上正在使用datepicker的bootstrap版本。一定要检查你的脚本src包含的.js文件,以查看你正在使用谁的datepicker。 - geis

10

设置默认格式将解决问题,对我来说这个解决方案可行,而以上所有方法都不行。

$.datepicker.setDefaults({
     dateFormat: 'yy-mm-dd'
});

来源:Datepicker:添加dateFormat会出错


3
这个对我有用。
$('#datepicker').datepicker({ format: 'dd-mm-yyyy' });

3

如果您从后端框架/服务(例如 Asp.Net MVC)获取默认日期值,则在初始化输入上的datepicker时设置dateFormat不会对日期进行初始格式化。

$(function() {
    $('#date-start').datepicker({
        dateFormat: 'mm/dd/yy',
        onSelect: function(startDate) {
            ...
        }
    });
});

enter image description here

上面的截图显示,即使我使用短日期初始化输入,如03/15/2018datepicker 最初也不会选择该格式。之后的所有选择都将按预期工作。

enter image description here

修复方法是在日期选择器初始化后手动设置dateFormat选项:
$(function() {
    // $('#date-start').datepicker({
    //     dateFormat: 'mm/dd/yy',
    //     onSelect: function(startDate) {
    //         ...
    //     }
    // });
    // $('#date-start').datepicker('option', 'dateFormat', 'mm/dd/yy');

    // Or you can chain them
    $('#date-start').datepicker({
        dateFormat: 'mm/dd/yy',
        onSelect: function(startDate) {
            ...
        }
    }).datepicker('option', 'dateFormat', 'mm/dd/yy');
});

3

3

完整示例:

在JSP中:

<div id="datepicker"></div>

在脚本中:

function datepicker() {

  $("#datepicker").datepicker({
    showButtonPanel: true,
    dateFormat: 'yy-mm-dd',
    onSelect: function() {
        var dateObject = $('#datepicker').datepicker().val();
        alert(dateObject);
    }
   }
  );
}

2
$('.datepicker').datepicker({
        format: 'dd-mm-yyyy',
        autoclose: true
    })

1
虽然这段代码可能回答了问题,但提供一些关于它如何以及为什么解决问题的额外背景信息会提高答案的长期价值。 - greg-449

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