簡體   English   中英

jQuery UI日期選擇器日期格式

[英]Jquery UI datepicker date format

我在項目中的表單中使用jQuery ui datepicker。 我正在像這樣初始化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”格式輸入日期。 當我嘗試在日期選擇器輸入中鍵入“ /”時,它什么都不做,或者我無法在日期選擇器輸入字段中鍵入“ /”。 我這樣做是因為我想給用戶選擇添加日期而不使用calander的功能(這是客戶的要求)。 我想要設置日期格式,以便可以使用[./-\\s]任何分隔[./-\\s] 例如,我希望接受所有這些類型的日期(01-01-1999、01 / 01 / 1999、01.01.1999和01 01 1999)。 誰能告訴我該怎么做?

我正在使用Django模型formets。

檢查一下: 支持多種格式的jQuery Datepicker

基本上,調整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;
};

我進行的小改動您的代碼有一些問題,您將數據時間格式設置為mm-dd-yyyy,這就是為什么日期時間選擇器始終為mm-dd-yyyy的原因。 以下更新的代碼工作完美

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM