Datepicker Widgetversion added: 1.0
Description: 从弹出框或内联日历选择一个日期。
jQuery UI 日期选择器(Datepicker)是向页面添加日期选择功能的高度可配置插件。您可以自定义日期格式和语言,限制可选择的日期范围,添加按钮和其他导航选项。
默认情况下,当相关的文本域获得焦点时,在一个小的覆盖层打开日期选择器。对于一个内联的日历,只需简单地将日期选择器附加到 div 或者 span 上。
键盘交互
当日期选择器打开时,下面的键盘命令可用:
- PAGE UP:移到上一个月。
- PAGE DOWN:移到下一个月。
- CTRL+PAGE UP:移到上一年。
- CTRL+PAGE DOWN:移到下一年。
- CTRL+HOME:移到当前月份。如果日期选择器是关闭的则打开。
- CTRL+LEFT:移到上一天。
- CTRL+RIGHT:移到下一天。
- CTRL+UP:移到上一周。
- CTRL+DOWN:移到下一周。
- ENTER:选择聚焦的日期。
- CTRL+END:关闭日期选择器,并清除日期。
- ESCAPE:关闭日期选择器,不做任何选择。
实用功能
$.datepicker.setDefaults( settings )
为所有的日期选择器改变默认设置。
使用 option()
方法来改变个别实例的设置。
设置所有的日期选择器在获得焦点时或点击图标时打开。
1
2
3
4
5
6
|
|
设置所有的日期选择器都有法语文本。
1
|
|
$.datepicker.formatDate( format, date, settings )
格式化日期为一个带有指定格式的字符串值。
格式可以是下列组合:
- d - 一月中的第几天(没有前导零)
- dd - 一月中的第几天(两位数)
- o - 一年中的第几天(没有前导零)
- oo - 一年中的第几天(三位数)
- D - 天的短名称
- DD - 天的长名称
- m - 一年中的第几月(没有前导零)
- mm - 一年中的第几月(两位数)
- M - 月的短名称
- MM - 月的长名称
- y - 年(两位数)
- yy - 年(四位数)
- @ - Unix 时间戳(ms since 01/01/1970)
- ! - Windows 钟表(100ns since 01/01/0001)
- '...' - 文本
- '' - 单引号
- 其他 - 文本
也有一些 $.datepicker
预定义的标准日期格式:
- ATOM - 'yy-mm-dd' (与 RFC 3339/ISO 8601 相同)
- COOKIE - 'D, dd M yy'
- ISO_8601 - 'yy-mm-dd'
- RFC_822 - 'D, d M y' (参照 RFC 822)
- RFC_850 - 'DD, dd-M-y' (参照 RFC 850)
- RFC_1036 - 'D, d M y' (参照 RFC 1036)
- RFC_1123 - 'D, d M yy' (参照 RFC 1123)
- RFC_2822 - 'D, d M yy' (参照 RFC 2822)
- RSS - 'D, d M y' (与 RFC 822 相同)
- TICKS - '!'
- TIMESTAMP - '@'
- W3C - 'yy-mm-dd' (与 ISO 8601 相同)
以 ISO 格式显示日期。产生 "2007-01-26"。
1
|
|
以扩展法语格式显示日期。产生 "Samedi, Juillet 14, 2007"。
1
2
3
4
5
6
|
|
$.datepicker.parseDate( format, value, settings )
从一个指定格式的字符串值中提取日期。
格式可以是下列组合:
- d - 一月中的第几天(没有前导零)
- dd - 一月中的第几天(两位数)
- o - 一年中的第几天(没有前导零)
- oo - 一年中的第几天(三位数)
- D - 星期几的短名称
- DD - 星期几的长名称
- m - 一年中的第几月(没有前导零)
- mm - 一年中的第几月(两位数)
- M - 月的短名称
- MM - 月的长名称
- y - 年(两位数)
- yy - 年(四位数)
- @ - Unix 时间戳(ms since 01/01/1970)
- ! - Windows 钟表(100ns since 01/01/0001)
- '...' - 文本
- '' - 单引号
- 其他 - 文本
一些可能被抛出的异常:
- 'Invalid arguments' - 如果格式或值为空则抛出此异常。
- 'Missing number at position nn' - 如果格式显示一个未找到的数值则抛出此异常。
- 'Unknown name at position nn' - 如果格式显示一个未找到的星期几名称或月份名称则抛出此异常。
- 'Unexpected literal at position nn' - 如果格式显示一个未找到的文本值则抛出此异常。
- 'Invalid date' - 如果日期无效则抛出此异常,比如 '31/02/2007'。
提取一个 ISO 格式的日期。
1
|
|
提取一个扩展法语格式的日期。
1
2
3
4
5
6
7
|
|
$.datepicker.iso8601Week( date )
确定一个给定的日期在一年中的第几周:1 到 53。
该函数使用 ISO 8601 定义一周:一周从星期一开始,每一年的第一周包含 1 月 4 日。这意味着上一年至多有三天可能包含在当年的第一周中,当年至多有三天可能包含在上一年的最后一周中。
该函数是 calculateWeek
选项的默认实现。
查找日期在一年中的第几周。
1
|
|
$.datepicker.noWeekends
设置如 beforeShowDay 函数,防止选择周末。
我们可以在 beforeShowDay
选项中提供 noWeekends()
函数,用来计算所有工作日,提供一个 true
/false
值的数组,用来指示日期是否可选择。
设置 DatePicker,让周末不可选。
1
2
3
|
|
局限
日期选择器提供了迎合不同的语言和日期格式本地化内容的支持。每个本地化包含在名称后追加语言代码的文件中,例如法语为 jquery.ui.datepicker-fr.js
。所需的本地化文件需要包含在主要的日期选择器代码后面。每个本地化文件添加了它自己的设置到可用的本地化集合中,所有实例自动应用这些设置为默认设置。
$.datepicker.regional
属性保存了一个本地化数组,以语言代码作为前置,默认前置为 ""
,表示英语。每个条目是一个带有下列属性的对象:closeText
、 prevText
、 nextText
、 currentText
、 monthNames
、 monthNamesShort
、 dayNames
、 dayNamesShort
、 dayNamesMin
、 weekHeader
、 dateFormat
、 firstDay
、 isRTL
、 showMonthAfterYear
和 yearSuffix
。
您可以通过下面代码恢复默认的本地化:
$.datepicker.setDefaults( $.datepicker.regional[ "" ] );
您可以通过下面代码覆盖一个特定地点的日期选择器:
$( selector ).datepicker( $.datepicker.regional[ "fr" ] );
主题
日期选择器部件(Datepicker Widget)使用 jQuery UI CSS 框架 来定义它的外观和感观的样式。如果需要使用日期选择器指定的样式,则可以使用下面的 CSS class 名称:
ui-datepicker
:日期选择器的外层容器。如果日期选择器是内联的,该元素会另外带有一个ui-datepicker-inline
class。如果设置了isRTL
选项,该元素会另外带有一个ui-datepicker-rtl
class。ui-datepicker-header
:日期选择器的头部容器。ui-datepicker-prev
:用于选择上一月的控件。ui-datepicker-next
:用于选择下一月的控件。ui-datepicker-title
:日期选择器包含月和年的标题容器。ui-datepicker-month
:月的文本显示,如果设置了changeMonth
选项则显示<select>
元素。ui-datepicker-year
:年的文本显示,如果设置了changeYear
选项则显示<select>
元素。
ui-datepicker-calendar
:包含日历的表格。ui-datepicker-week-end
:周末的单元格。: Cells containing weekend days.ui-datepicker-other-month
:发生在某月但不是当前月天数的单元格。ui-datepicker-unselectable
:用户不可选择的单元格。ui-datepicker-current-day
:已选中日期的单元格。ui-datepicker-today
:当天日期的单元格。
ui-datepicker-buttonpane
:当设置showButtonPanel
选项时使用按钮面板(buttonpane)。ui-datepicker-current
:用于选择当天日期的按钮。
如果 numberOfMonths
选项用于显示多个月份,则使用一些额外的 class:
ui-datepicker-multi
:一个多月份日期选择器的最外层容器。该元素会根据要显示的月份个数另外带有ui-datepicker-multi-2
、ui-datepicker-multi-3
或ui-datepicker-multi-4
class 名称。ui-datepicker-group
:分组内单独的选择器。该元素会根据它在分组中的位置另外带有ui-datepicker-group-first
、ui-datepicker-group-middle
或ui-datepicker-group-last
class 名称。
依赖
- UI 核心(UI Core)
- 特效核心(Effects Core)(可选的;当与
showAnim
选项一起使用时)
其他注意事项:
- 该部件要求一些功能性的 CSS,否则将无法工作。如果您创建了一个自定义的主题,请使用小部件指定的 CSS 文件作为起点。
-
该部件以编程方式操作元素的值,因此当元素的值改变时不会触发原生的
change
事件。 - 不支持在
<input type="date">
上创建日期选择器,因为会造成与本地选择器的 UI 冲突。
Options
altFieldType: Selector or jQuery or Element
""
altFormat
指定的这一区域设置如下改变格式的日期(使用input最直观). 如果没有代替的区域则使用空白.
初始化带有指定 altField
选项的 datepicker:
1
|
|
在初始化后,获取或设置altField
选项:
1
2
3
4
5
|
|
altFormatType: String
""
初始化带有指定 altFormat
选项的 datepicker:
1
|
|
在初始化后,获取或设置altFormat
选项:
1
2
3
4
5
|
|
appendTextType: String
""
初始化带有指定 appendText
选项的 datepicker:
1
|
|
在初始化后,获取或设置appendText
选项:
1
2
3
4
5
|
|
autoSizeType: Boolean
false
true
,将自动调整输入字段,以适应日期在当前的dateFormat
。初始化带有指定 autoSize
选项的 datepicker:
1
|
|
在初始化后,获取或设置autoSize
选项:
1
2
3
4
5
|
|
beforeShowType: Function( Element input, Object inst )
null
beforeShowDayType: Function( Date date )
null
-
[0]
:true
/false
表示这个日期是否可选 -
[1]
: 一个 CSS class 名 添加到日期的单元格 或默认描述为""
。 -
[2]
:一个可选的日期弹出提示
calculateWeekType: Function()
jQuery.datepicker.iso8601Week
初始化带有指定 calculateWeek
选项的 datepicker:
1
|
|
在初始化后,获取或设置calculateWeek
选项:
1
2
3
4
5
|
|
changeMonthType: Boolean
false
初始化带有指定 changeMonth
选项的 datepicker:
1
|
|
在初始化后,获取或设置changeMonth
选项:
1
2
3
4
5
|
|
changeYearType: Boolean
false
yearRange
选项来控制哪些年是可供选择。初始化带有指定 changeYear
选项的 datepicker:
1
|
|
在初始化后,获取或设置changeYear
选项:
1
2
3
4
5
|
|
closeTextType: String
"Done"
showButtonPanel
选项以显示此按钮。初始化带有指定 closeText
选项的 datepicker:
1
|
|
在初始化后,获取或设置closeText
选项:
1
2
3
4
5
|
|
constrainInputType: Boolean
true
true
时,在输入栏的输入被限制为当前的日期格式dateFormat
选项允许的字符。初始化带有指定 constrainInput
选项的 datepicker:
1
|
|
在初始化后,获取或设置constrainInput
选项:
1
2
3
4
5
|
|
currentTextType: String
"Today"
showButtonPanel
选项以显示此按钮。初始化带有指定 currentText
选项的 datepicker:
1
|
|
在初始化后,获取或设置currentText
选项:
1
2
3
4
5
|
|
dateFormatType: String
"mm/dd/yy"
formatDate
函数。初始化带有指定 dateFormat
选项的 datepicker:
1
|
|
在初始化后,获取或设置dateFormat
选项:
1
2
3
4
5
|
|
dayNamesType: Array
[ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ]
dateFormat
的设置进行使用。初始化带有指定 dayNames
选项的 datepicker:
1
|
|
在初始化后,获取或设置dayNames
选项:
1
2
3
4
5
|
|
dayNamesMinType: Array
[ "Su", "Mo", "Tu", "We", "Th", "Fr", "Sa" ]
初始化带有指定 dayNamesMin
选项的 datepicker:
1
|
|
在初始化后,获取或设置dayNamesMin
选项:
1
2
3
4
5
|
|
dayNamesShortType: Array
[ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" ]
dateFormat
的设置使用。初始化带有指定 dayNamesShort
选项的 datepicker:
1
|
|
在初始化后,获取或设置dayNamesShort
选项:
1
2
3
4
5
|
|
defaultDateType: Date or Number or String
null
dateFormat
中指定任何一个实际的日期,
或者一个和今天对比的数字(例如 +7) 或者一个连续的字符串值('y' 表示年, 'm' 表示月, 'w'表示周, 'd'表示日, 例如. '+1m +7d'), 或者为空则是今天.- Date: 一个包含默认日期的date对象。
-
Number: 一个和今天对比的数字。例如
2
表示从今天开始的第二天,(注:即:后天),-1
表示昨天。 -
String:
一个由
dateFormat
选项定义格式的字符串 , 或相对日期。 相对日期必须包含值和期间对; 有效期间为:"y"
表示几年,"m"
表示几月,"w"
表示几周,和"d"
表示几天。 例如,"+1m +7d"
表示从今天开始的一个月加七天。
初始化带有指定 defaultDate
选项的 datepicker:
1
|
|
在初始化后,获取或设置defaultDate
选项:
1
2
3
4
5
|
|
durationType: or String
"normal"
初始化带有指定 duration
选项的 datepicker:
1
|
|
在初始化后,获取或设置duration
选项:
1
2
3
4
5
|
|
firstDayType: Integer
0
0
, 周一是 1
, 以此类推。初始化带有指定 firstDay
选项的 datepicker:
1
|
|
在初始化后,获取或设置firstDay
选项:
1
2
3
4
5
|
|
gotoCurrentType: Boolean
false
true
, 当前日的链接将移动到当前选中的日期,而不是今天。
初始化带有指定 gotoCurrent
选项的 datepicker:
1
|
|
在初始化后,获取或设置gotoCurrent
选项:
1
2
3
4
5
|
|
hideIfNoPrevNextType: Boolean
false
初始化带有指定 hideIfNoPrevNext
选项的 datepicker:
1
|
|
在初始化后,获取或设置hideIfNoPrevNext
选项:
1
2
3
4
5
|
|
isRTLType: Boolean
false
初始化带有指定 isRTL
选项的 datepicker:
1
|
|
在初始化后,获取或设置isRTL
选项:
1
2
3
4
5
|
|
maxDateType: Date or Number or String
null
null
时,没有上限。- Date: 一个包含默认日期的date对象。
-
Number: 一个和今天对比的数字。例如
2
表示从今天开始的第二天,(注:即:后天),-1
表示昨天。 -
String:
一个由
dateFormat
选项定义格式的字符串 , 或相对日期。 相对日期必须包含值和期间对; 有效期间为:"y"
表示几年,"m"
表示几月,"w"
表示几周,和"d"
表示几天。 例如,"+1m +7d"
表示从今天开始的一个月加七天。
初始化带有指定 maxDate
选项的 datepicker:
1
|
|
在初始化后,获取或设置maxDate
选项:
1
2
3
4
5
|
|
minDateType: Date or Number or String
null
null
时,没有下限。- Date: 一个包含默认日期的date对象。
-
Number: 一个和今天对比的数字。例如
2
表示从今天开始的第二天,(注:即:后天),-1
表示昨天。 -
String:
一个由
dateFormat
选项定义格式的字符串 , 或相对日期。 相对日期必须包含值和期间对; 有效期间为:"y"
表示几年,"m"
表示几月,"w"
表示几周,和"d"
表示几天。 例如,"+1m +7d"
表示从今天开始的一个月加七天。
初始化带有指定 minDate
选项的 datepicker:
1
|
|
在初始化后,获取或设置minDate
选项:
1
2
3
4
5
|
|
monthNamesType: Array
[ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ]
dateFormat
的设置进行使用。
初始化带有指定 monthNames
选项的 datepicker:
1
|
|
在初始化后,获取或设置monthNames
选项:
1
2
3
4
5
|
|
monthNamesShortType: Array
[ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ]
dateFormat
的设置进行使用。
初始化带有指定 monthNamesShort
选项的 datepicker:
1
|
|
在初始化后,获取或设置monthNamesShort
选项:
1
2
3
4
5
|
|
nextTextType: String
"Next"
初始化带有指定 nextText
选项的 datepicker:
1
|
|
在初始化后,获取或设置nextText
选项:
1
2
3
4
5
|
|
numberOfMonthsType: Number or Array
1
- Number: 一行显示的月份数
- Array: 一个数组定义的显示行数和列数。
初始化带有指定 numberOfMonths
选项的 datepicker:
1
|
|
在初始化后,获取或设置numberOfMonths
选项:
1
2
3
4
5
|
|
onChangeMonthYearType: Function( Integer year, Integer month, Object inst )
null
this
指向相关联的输入域。onCloseType: Function( String dateText, Object inst )
null
""
如果没有)和datepicker实例作为参数。
this
指向相关联的输入域。
onSelectType: Function( String dateText, Object inst )
null
this
指向相关联的输入域。prevTextType: String
"Prev"
初始化带有指定 prevText
选项的 datepicker:
1
|
|
在初始化后,获取或设置prevText
选项:
1
2
3
4
5
|
|
selectOtherMonthsType: Boolean
false
showOtherMonths
选项设置为true
,那么2014年3月31日,2014年3月30日会以灰色的形式显示在4月份的面板上,这个选项表示在4月份的面板上是否可以选择2014年3月31日,2014年3月30日这两个日期。5月也是一样的。)
这选项仅适用于 如果showOtherMonths
选项设置为true
的时候。
初始化带有指定 selectOtherMonths
选项的 datepicker:
1
|
|
在初始化后,获取或设置selectOtherMonths
选项:
1
2
3
4
5
|
|
shortYearCutoffType: Number or String
"+10"
dateFormat
中的 'y'共同使用). 如果是一个数值 (0-99)那么将直接使用这些值. 如果提供的是一个字符串值那么它将被转换为数值添加到当前年. 一旦截断年开始计算, 任何输入的日期的年份小于或者等于它的话将被判定为在本世纪,大于他的将被判定为在上个世纪.
-
Number: 一个
0
到99
的值表示截断年份值 -
String: 从本年份开始的相对年数,例如,
"+3"
or"-5"
.
初始化带有指定 shortYearCutoff
选项的 datepicker:
1
|
|
在初始化后,获取或设置shortYearCutoff
选项:
1
2
3
4
5
|
|
showAnimType: String
"show"
"show"
(默认), "slideDown"
, "fadeIn"
, 或其他任何jQuery UI effects的显示/隐藏效果。 设置为空字符串可以禁用动画,即直接显示或者隐藏。初始化带有指定 showAnim
选项的 datepicker:
1
|
|
在初始化后,获取或设置showAnim
选项:
1
2
3
4
5
|
|
showButtonPanelType: Boolean
false
currentText
和 closeText
选项分别进行定制。初始化带有指定 showButtonPanel
选项的 datepicker:
1
|
|
在初始化后,获取或设置showButtonPanel
选项:
1
2
3
4
5
|
|
showCurrentAtPosType: Number
0
numberOfMonths
选项设置多月份显示的情况下,当前月份显示的位置。(注:自顶部/左边开始第n位,以0开始计数。)初始化带有指定 showCurrentAtPos
选项的 datepicker:
1
|
|
在初始化后,获取或设置showCurrentAtPos
选项:
1
2
3
4
5
|
|
showMonthAfterYearType: Boolean
false
初始化带有指定 showMonthAfterYear
选项的 datepicker:
1
|
|
在初始化后,获取或设置showMonthAfterYear
选项:
1
2
3
4
5
|
|
showOnType: String
"focus"
"focus"
)还是clicked ("button"
)或者任何事件("both"
)。初始化带有指定 showOn
选项的 datepicker:
1
|
|
在初始化后,获取或设置showOn
选项:
1
2
3
4
5
|
|
showOptionsType: Object
{}
showAnim
选项来使用jQuery UI effects动画效果, 你可以为动画提供一些额外的设置.
初始化带有指定 showOptions
选项的 datepicker:
1
|
|
在初始化后,获取或设置showOptions
选项:
1
2
3
4
5
|
|
showOtherMonthsType: Boolean
false
selectOtherMonths
选项。
初始化带有指定 showOtherMonths
选项的 datepicker:
1
|
|
在初始化后,获取或设置showOtherMonths
选项:
1
2
3
4
5
|
|
showWeekType: Boolean
false
初始化带有指定 showWeek
选项的 datepicker:
1
|
|
在初始化后,获取或设置showWeek
选项:
1
2
3
4
5
|
|
stepMonthsType: Number
1
初始化带有指定 stepMonths
选项的 datepicker:
1
|
|
在初始化后,获取或设置stepMonths
选项:
1
2
3
4
5
|
|
weekHeaderType: String
"Wk"
showWeek
选项以显示此列。初始化带有指定 weekHeader
选项的 datepicker:
1
|
|
在初始化后,获取或设置weekHeader
选项:
1
2
3
4
5
|
|
yearRangeType: String
"c-10:c+10"
"nnnn:nnnn"
),或这些格式的组合 ("nnnn:-nn"
)。
请注意,此选项仅影响下拉列表中的显示,
使用minDate
和/或 maxDate
选项限制哪些日期可以选择。初始化带有指定 yearRange
选项的 datepicker:
1
|
|
在初始化后,获取或设置yearRange
选项:
1
2
3
4
5
|
|
yearSuffixType: String
""
初始化带有指定 yearSuffix
选项的 datepicker:
1
|
|
在初始化后,获取或设置yearSuffix
选项:
1
2
3
4
5
|
|
Methods
destroy()Returns: jQuery (plugin only)
- 该方法不接受任何参数。
调用 destroy 方法:
1
|
|
dialog( date [, onSelect ] [, settings ] [, pos ] )Returns: jQuery (plugin only)
-
date初始化的日期。
-
onSelectType: Function()当一个日期被选中时的回调函数. 这个函数接收日期文本 和datepicker实例作为参数。
-
settingsType: Options新的datepicker的选项。
-
posType: Number[2] or MouseEventdialog对话框的top/left的
[x, y]
坐标,或者一个鼠标事件MouseEvent
的坐标。如果不提供此参数dialog将显示在屏幕正中。
调用 dialog 方法:
1
|
|
getDate()Returns: Date
null
。- 该方法不接受任何参数。
调用 getDate 方法:
1
|
|
hide()Returns: jQuery (plugin only)
- 该方法不接受任何参数。
调用 hide 方法:
1
|
|
isDisabled()Returns: Boolean
- 该方法不接受任何参数。
调用 isDisabled 方法:
1
|
|
option( optionName )Returns: Object
optionName
关联的值。-
optionNameType: String要获取值的选项的名称。
调用该方法:
1
|
|
option()Returns: PlainObject
- 该方法不接受任何参数。
调用该方法:
1
|
|
option( optionName, value )Returns: jQuery (plugin only)
optionName
关联的 datepicker 选项的值。调用该方法:
1
|
|
option( options )Returns: jQuery (plugin only)
-
optionsType: Object要设置的 option-value 对。
调用该方法:
1
|
|
refresh()Returns: jQuery (plugin only)
- 该方法不接受任何参数。
调用 refresh 方法:
1
|
|
setDate( date )Returns: jQuery (plugin only)
Date
对象或当前date format 的字符串(例如,"01/26/2009"
),
一个从今天开始的天数(例如,+7
)
或值和周期的字符串 "y"
表示年数, "m"
表示月份数, "w"
表示周数, "d"
表示天数,例如, "+1m +7d"
),
或者为null
来清除选定的日期。-
date新的日期。
调用 setDate 方法:
1
|
|
show()Returns: jQuery (plugin only)
- 该方法不接受任何参数。
调用 show 方法:
1
|
|
widget()Returns: jQuery
jQuery
对象。
- 该方法不接受任何参数。
调用 widget 方法:
1
|
|
Example:
一个简单的 jQuery UI Datepicker.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
|