【问题标题】:Jquery UI datepicker date formatJquery UI datepicker 日期格式
【发布时间】:2016-06-03 19:28:01
【问题描述】:

我在我的项目中的表单中使用 jquery ui datepicker。我正在像这样初始化日期选择器。

var date_lower = new Date(1910,0,1);
var year_lower = date_lower.getFullYear();
var date_upper = new Date();
var year_upper = date_upper.getFullYear();
$("#id_dob").datepicker({ dateFormat: 'mm-dd-yy',minDate: date_lower,
        maxDate: date_upper ,
        yearRange: year_lower+':'+year_upper ,
        changeYear: true,
        changeMonth: true,
        defaultDate: new Date(2000,01,01)
});

我的日期格式是这样的'mm-dd-yy'。所以 datepicker 不允许我以 'mm/dd/yy' 格式输入日期。当我尝试在 datepicker 输入中键入“/”时,它什么也不做,或者我无法在 datepicker 输入字段中键入“/”。我这样做是因为我想给用户选项来添加日期而不使用日历(这是客户的需求)。我希望它设置日期格式,以便我可以使用[./-\s] 中的任何分隔符。例如,我希望接受所有这些类型的日期(01-01-1999、01/01/1999、01.01.1999 和 01 01 1999)。谁能告诉我该怎么做?

我正在使用 Django 模型表单集。

【问题讨论】:

    标签: javascript jquery date jquery-ui datepicker


    【解决方案1】:

    看看这个:jQuery Datepicker that supports multiple formats

    基本上,调整 parseDate 函数以允许多种格式,并使用原始 parseDate 来检查每种格式:

    $.datepicker.inputFormats = ["mm-dd-yy", "mm/dd/yy", "mm dd yy"];//list formats to be accepted here, add formats as you see fit.
    
    $.datepicker.originalParseDate = $.datepicker.parseDate;
    
    $.datepicker.parseDate = function (format, value, settings) {
        var date;
    
        function testParse(format, value, settings) {
            if ( ! date ) {
                try {
                    date = $.datepicker.originalParseDate(format, value, settings);
                } catch (Error) {
                }
            }
        }
    
        testParse(format, value, settings);
        for(var n = 0, stop = $.datepicker.inputFormats ? $.datepicker.inputFormats.length : 0; n < stop; n++){
            testParse($.datepicker.inputFormats[n], value, settings);
        };
        return date;
    };
    

    【讨论】:

      【解决方案2】:

      我做了一些小改动 您的代码有问题,您将数据时间格式设置为 mm-dd-yyyy, 这就是为什么日期时间选择器总是得到 mm-dd-yyyy。 以下更新的代码完美运行

      $("#datepicker").datepicker({
        minDate: date_lower, 
        maxDate: date_upper,
        changeYear: true,
        changeMonth: true,    
       });
      

      【讨论】:

      • 我希望 datepicker 在 mm-dd-yyyy 中获取日期。但我不想将“-”修复为分隔符。就像我希望接受所有这些类型的日期(01-01-1999、01/01/1999、01.01.1999 和 01 01 1999)。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-28
      • 1970-01-01
      • 2014-10-29
      • 1970-01-01
      • 2022-01-11
      相关资源
      最近更新 更多