2016-09-23 222 views
0

我无法理解如何设置jquery Datepicker的最小/最大日期。当我检查docs时,我看到dateformat预计在new Date(2009, 1 - 1, 26)1-1是什么意思?当我为js dateformats学校w3c,我无法找到这个。设置最小/最大日期jquery Datepicker

所以,我想

$("#datepicker").datepicker({ 
    changeMonth: true, 
    changeYear: true, 
    dateFormat: 'yyyy-mm', 
    minDate: new Date(2001-01), 
    maxDate: '+15Y' 
}); 

但是,这给我留下了完全随机的结果...它始于2006年,结束2026

这里是小提琴 http://jsfiddle.net/ANF2y/58/

enter image description here

+0

在JavaScript ['Date'](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date)对象'month'被计算为0为11.设置月份使用'当前月份-1'。 – Pugazh

+0

@Pugazh好的。但为什么开始**日期**实现为'1-1' ?! – Stophface

+0

@Stophface本月而不是日期。 '新日期(年,月,日)' – Rajesh

回答

1

在JavaScript中,month是从0到11计算的。因此,在创建新日期时当前月份 - 1

1 - 1等同于0。所以这是一个有效的月份(0 - January)。

你的情况如下设置minDate

$("#datepicker").datepicker({ 
    changeMonth: true, 
    changeYear: true, 
    minDate: new Date(2001, 0, 1), 
    maxDate: '+15Y', 
    dateFormat: 'yyyy-mm' 
}); 

,这是因为jQuery的日期选择器只能显示15个项目的时间,也没有最大日期设置,所以你可以去远在未来,只要你想。当它设置为2001年时,您会在下拉菜单中看到2006年,因为它限制为15个项目。选择2006年,然后你会在下拉菜单中看到2001年。您的问题是否可以在年份下拉列表中显示更多项目?

+0

这一个:http://jsfiddle.net/ANF2y/60/从2001年开始在您的电脑上?在这里它开始于2006年,结束于2026年... – Stophface

+0

这是一个jQuery [Datepicker](http://api.jqueryui.com/datepicker/)的错误。但你可以通过使用箭头选择前几个月:-( – Pugazh

+0

我将向开发人员/ jQuery论坛报告错误!! – Pugazh

1

我不打算进入minDate或maxDate,因为这已被很好地涵盖。但除此之外,你正在寻找的是yearRange将设置jQuery日期选择器的年下拉菜单中可见项目的数量。

的文档状态:

在今年下拉显示年份的范围:无论是相对于今天的年(“-NN:+ NN”),相对于当前选择的年份(“C -nn:c + nn“),绝对值(”nnnn:nnnn“)或这些格式的组合(”nnnn:-nn“)。请注意,该选项仅影响下拉菜单中显示的内容。

Reference

相关问题