来自datepicker的getFullYear问题

时间:2012-12-06 11:37:08

标签: jquery asp.net jquery-ui date jquery-ui-datepicker

我正在尝试从文本框中的日期检索全年,但如果日期超过12,则不会返回(因此我怀疑这是日期格式问题),但我怎样才能使其正常工作?

   $(function() {
        $("#dateInput").datepicker({
            onSelect: function (dateText) {
                var birthDate = new Date($(this).val()).getFullYear();
                alert(birthDate); 
            },
            dateFormat: 'dd/mm/yy',
            constrainInput: true,
            changeMonth: true,
            changeYear: true,
            defaultDate: new Date()
        });
    });

请点击此处查看示例:http://jsfiddle.net/5JCRs/12/

感谢。

4 个答案:

答案 0 :(得分:3)

使用大写MM代替小写mm,它应该可以使用。所以你的日期格式应该是:

dateFormat: 'dd/MM/yy',

答案 1 :(得分:2)

您可以使用datepicker.parseDate功能,该功能将根据指定的格式 解析日期

  

$。datepicker.parseDate(格式,值,设置) - 提取日期   来自具有指定格式的字符串值。

必须将onSelect函数更改为:

onSelect: function(dateText, inst) {
    var date = $.datepicker.parseDate(
        inst.settings.dateFormat || $.datepicker._defaults.dateFormat,
        dateText,
        inst.settings
    );
    alert(date.getFullYear());
}

datepicker.parseDate函数需要第一个参数中的日期格式。提供此值的最佳方法是使用明确指定的日期格式或回退到默认日期格式。

Demo here

答案 2 :(得分:0)

dateFormat选项值设置为'yy':

$( "#dateInput" ).datepicker({ dateFormat: "yy" });

或者,如果您使用regional设置:

$.datepicker.regional["it"] = {
    //...
    , dateFormat: "yy"
    //...
}

参考here

答案 3 :(得分:0)

这只是JQuery和Javascript中日期格式的区别。在javascript中,当您将dateString提供给new Date(dateString)时,可能的日期格式为

MM-dd-yyyy
yyyy/MM/dd
MM/dd/yyyy
MMMM dd, yyyy
MMM dd, yyyy

你可以为JQuery提供dateFormat:'mm / dd / yy'然后它可以工作,这相当于javascript中的MM / dd / yyyy。