2

我正在尝试从文本框中的日期检索全年,但如果日期超过 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

4 回答 4

3

使用大写MM而不是小写mm,它应该可以工作。所以你的日期格式应该是:

dateFormat: 'dd/MM/yy',
于 2012-12-06T11:38:43.570 回答
2

您可以使用将根据指定格式datepicker.parseDate解析日期的函数:

$.datepicker.parseDate(format, value, settings) - 从具有指定格式的字符串值中提取日期。

onSelect功能必须更改为:

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

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

演示在这里

于 2012-12-06T11:44:40.630 回答
0

dateFormat选项值设置为“yy”:

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

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

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

参考这里

于 2012-12-06T11:58:37.257 回答
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' 然后它会起作用,这相当于 MM/dd/yyyy 在javascript中。

于 2012-12-06T12:04:39.290 回答