JQuery datepicker 用法详解


Posted in Javascript onDecember 25, 2015

jQuery UI很强大,其中的日期选择插件Datepicker是一个配置灵活的插件,我们可以自定义其展示方式,包括日期格式、语言、限制选择日期范围、添加相关按钮以及其它导航等。

官方地址:http://docs.jquery.com/UI/Datepicker,官方示例: http://jqueryui.com/demos/datepicker/。

一个不错的地址,用来DIY jQuery UI界面效果的站点http://jqueryui.com/themeroller/

DatePicker基本使用方法:

<!DOCTYPE html>
<html>
<head>
 <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
 <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
 <script>
 $(document).ready(function() {
  $("#datepicker").datepicker();
 });
 </script>
</head>
<body style="font-size:62.5%;">
<div type="text" id="datepicker"></div>
</body>
</html>
page up/down - 上一月、下一月
ctrl+page up/down - 上一年、下一年
ctrl+home - 当前月或最后一次打开的日期
ctrl+left/right - 上一天、下一天
ctrl+up/down - 上一周、下一周
enter - 确定选择日期
ctrl+end - 关闭并清除已选择的日期
escape - 关闭并取消选择
$.datepicker.setDefaults( settings ) - 全局设置日期选择插件的参数.
$.datepicker.formatDate( format, date, settings ) - 格式化显示的日期字符串
$.datepicker.iso8601Week( date ) - 给出一个日期,确实他是一年中的第几周
$.datepicker.parseDate( format, value, settings ) - 按照指定格式获取日期字符串 
d - 每月的第几天 (没有前导零)
dd - 每月的第几天 (两位数字)
o - 一年中的第几天 (没有前导零)
oo - 一年中的第几天 (三位数字)
D - day name short
DD - day name long
m - 月份 (没有前导零)
mm - 月份 (两位数字)
M - month name short
MM - month name long
y - 年份 (两位数字)
yy - 年份 (四位数字)
@ - Unix 时间戳 (从 01/01/1970 开始)
'...' - 文本
'' - 单引号
(其它) - 文本
ATOM - 'yy-mm-dd' (Same as RFC 3339/ISO 8601)
COOKIE - 'D, dd M yy'
ISO_8601 - 'yy-mm-dd'
RFC_822 - 'D, d M y'
RFC_850 - 'DD, dd-M-y'
RFC_1036 - 'D, d M y
RFC_1123 - 'D, d M yy'
RFC_2822 - 'D, d M yy'
RSS - 'D, d M y'
TIMESTAMP - '@'
W3C - 'yy-mm-dd'
altField : String : ''

  将选择的日期同步到另一个域中,配合altFormat可以显示不同格式的日期字符串。

  初始:$('.selector').datepicker({ altField: '#actualDate' });
  获取:var altField = $('.selector').datepicker('option', 'altField');
  设置:$('.selector').datepicker('option', 'altField', '#actualDate'); 

altFormat : String : ''

当设置了altField的情况下,显示在另一个域中的日期格式。
  初始:$('.selector').datepicker({ altFormat: 'yy-mm-dd' });
  获取:var altFormat = $('.selector').datepicker('option', 'altFormat');
  设置:$('.selector').datepicker('option', 'altFormat', 'yy-mm-dd'); 

appendText : String : ''

  在日期插件的所属域后面添加指定的字符串。
  初始:$('.selector').datepicker({ appendText: '(yyyy-mm-dd)' });
  获取:var appendText = $('.selector').datepicker('option', 'appendText');
  设置:$('.selector').datepicker('option', 'appendText', '(yyyy-mm-dd)'); 

buttonImage : String : ''

  设置弹出按钮的图片,如果非空,则按钮的文本将成为alt属性,不直接显示。
  初始:$('.selector').datepicker({ buttonImage: '/images/datepicker.gif' });
  获取:var buttonImage = $('.selector').datepicker('option', 'buttonImage');
  设置:$('.selector').datepicker('option', 'buttonImage', '/images/datepicker.gif'); 

buttonImageOnly : Boolean : false

Set to true to place an image after the field to use as the trigger without it appearing on a button.
  初始:$('.selector').datepicker({ buttonImageOnly: true });
  获取:var buttonImageOnly = $('.selector').datepicker('option', 'buttonImageOnly');
  设置:$('.selector').datepicker('option', 'buttonImageOnly', true); 

buttonText : String : '...'

  设置触发按钮的文本内容。
  初始:$('.selector').datepicker({ buttonText: 'Choose' });
  获取:var buttonText = $('.selector').datepicker('option', 'buttonText');
  设置:$('.selector').datepicker('option', 'buttonText', 'Choose'); 

changeMonth : Boolean : false

  设置允许通过下拉框列表选取月份。
  初始:$('.selector').datepicker({ changeMonth: true });
  获取:var changeMonth = $('.selector').datepicker('option', 'changeMonth');
  设置:$('.selector').datepicker('option', 'changeMonth', true); 

changeYear : Boolean : false

  设置允许通过下拉框列表选取年份。
  初始:$('.selector').datepicker({ changeYear: true });
  获取:var changeYear = $('.selector').datepicker('option', 'changeYear');
  设置:$('.selector').datepicker('option', 'changeYear', true); 

closeTextType: StringDefault: 'Done'

  设置关闭按钮的文本内容,此按钮需要通过showButtonPanel参数的设置才显示。
  初始:$('.selector').datepicker({ closeText: 'X' });
  获取:var closeText = $('.selector').datepicker('option', 'closeText');
  设置:$('.selector').datepicker('option', 'closeText', 'X'); 

constrainInput : Boolean : true

  如果设置为true,则约束当前输入的日期格式。
  初始:$('.selector').datepicker({ constrainInput: false });
  获取:var constrainInput = $('.selector').datepicker('option', 'constrainInput');
  设置:$('.selector').datepicker('option', 'constrainInput', false); 

currentText : String : 'Today'

  设置当天按钮的文本内容,此按钮需要通过showButtonPanel参数的设置才显示。
  初始:$('.selector').datepicker({ currentText: 'Now' });
  获取:var currentText = $('.selector').datepicker('option', 'currentText');
  设置:$('.selector').datepicker('option', 'currentText', 'Now'); 

dateFormat : String : 'mm/dd/yy'

  设置日期字符串的显示格式。
  初始:$('.selector').datepicker({ dateFormat: 'yy-mm-dd' });
  获取:var dateFormat = $('.selector').datepicker('option', 'dateFormat');
  设置:$('.selector').datepicker('option', 'dateFormat', 'yy-mm-dd'); 

dayNames : Array : ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']

  设置一星期中每天的名称,从星期天开始。此内容用于dateFormat时显示,以及日历中当鼠标移至行头时显示。
  初始:$('.selector').datepicker({ dayNames: ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'] });
  获取:var dayNames = $('.selector').datepicker('option', 'dayNames');
  设置:$('.selector').datepicker('option', 'dayNames', ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi']); 

dayNamesMin : Array : ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa']

  设置一星期中每天的缩语,从星期天开始,此内容用于dateFormat时显示,以前日历中的行头显示。
  初始:$('.selector').datepicker({ dayNamesMin: ['Di', 'Lu', 'Ma', 'Me', 'Je', 'Ve', 'Sa'] });
  获取:var dayNamesMin = $('.selector').datepicker('option', 'dayNamesMin');
  设置:$('.selector').datepicker('option', 'dayNamesMin', ['Di', 'Lu', 'Ma', 'Me', 'Je', 'Ve', 'Sa']); 

dayNamesShort : Array : ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']

  设置一星期中每天的缩语,从星期天开始,此内容用于dateFormat时显示,以前日历中的行头显示。
  初始:$('.selector').datepicker({ dayNamesShort: ['Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam'] });
  获取:var dayNamesShort = $('.selector').datepicker('option', 'dayNamesShort');
  设置:$('.selector').datepicker('option', 'dayNamesShort', ['Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam']); 

defaultDate : Date, Number, String : null

  设置默认加载完后第一次显示时选中的日期。可以是Date对象,或者是数字(从今天算起,例如+7),或者有效的字符串('y'代表年, 'm'代表月, 'w'代表周, 'd'代表日, 例如:'+1m +7d')。
  初始:$('.selector').datepicker({ defaultDate: +7 });
  获取:var defaultDate = $('.selector').datepicker('option', 'defaultDate');
  设置:$('.selector').datepicker('option', 'defaultDate', +7); 

duration : String, Number : 'normal'

  设置日期控件展开动画的显示时间,可选是"slow", "normal", "fast",''代表立刻,数字代表毫秒数。
  初始:$('.selector').datepicker({ duration: 'slow' });
  获取:var duration = $('.selector').datepicker('option', 'duration');
  设置:$('.selector').datepicker('option', 'duration', 'slow'); 

firstDay : Number : 0

  设置一周中的第一天。星期天为0,星期一为1,以此类推。
  初始:$('.selector').datepicker({ firstDay: 1 });
  获取:var firstDay = $('.selector').datepicker('option', 'firstDay');
  设置:$('.selector').datepicker('option', 'firstDay', 1); 

gotoCurrent : Boolean : false

  如果设置为true,则点击当天按钮时,将移至当前已选中的日期,而不是今天。
  初始:$('.selector').datepicker({ gotoCurrent: true });
  获取:var gotoCurrent = $('.selector').datepicker('option', 'gotoCurrent');
  设置:$('.selector').datepicker('option', 'gotoCurrent', true); 

hideIfNoPrevNext : Boolean : false

  设置当没有上一个/下一个可选择的情况下,隐藏掉相应的按钮。(默认为不可用)
  初始:$('.selector').datepicker({ hideIfNoPrevNext: true });
  获取:var hideIfNoPrevNext = $('.selector').datepicker('option', 'hideIfNoPrevNext');
  设置:$('.selector').datepicker('option', 'hideIfNoPrevNext', true); 

isRTL : Boolean : false

  如果设置为true,则所有文字是从右自左。
  初始:$('.selector').datepicker({ isRTL: true });
  获取:var isRTL = $('.selector').datepicker('option', 'isRTL');
  设置:$('.selector').datepicker('option', 'isRTL', true); 

maxDate : Date, Number, String : null

  设置一个最大的可选日期。可以是Date对象,或者是数字(从今天算起,例如+7),或者有效的字符串('y'代表年, 'm'代表月, 'w'代表周, 'd'代表日, 例如:'+1m +7d')。
  初始:$('.selector').datepicker({ maxDate: '+1m +1w' });
  获取:var maxDate = $('.selector').datepicker('option', 'maxDate');
  设置:$('.selector').datepicker('option', 'maxDate', '+1m +1w');
       $('.selector').datepicker('option', 'maxDate', '12/25/2012'); 

minDate : Date, Number, String : null

设置一个最小的可选日期。可以是Date对象,或者是数字(从今天算起,例如+7),或者有效的字符串('y'代表年, 'm'代表月, 'w'代表周, 'd'代表日, 例如:'+1m +7d')。
  初始:$('.selector').datepicker({ minDate: new Date(2007, 1 - 1, 1) });
  获取:var minDate = $('.selector').datepicker('option', 'minDate');
  设置:$('.selector').datepicker('option', 'minDate', new Date(2007, 1 - 1, 1));

       $('.selector').datepicker('option', 'minDate', '12/25/2012'); 
monthNames : Array : ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']

  设置所有月份的名称。
  初始:$('.selector').datepicker({monthNames:['Januar','Februar','Marts','April','Maj','Juni','Juli','August','September','Oktober','November','December']});
  获取:var monthNames = $('.selector').datepicker('option', 'monthNames');
  设置:$('.selector').datepicker('option', 'monthNames', ['Januar','Februar','Marts','April','Maj','Juni','Juli','August','September','Oktober','November','December']); 
monthNamesShort : Array : ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']

  设置所有月份的缩写。

  初始:$('.selector').datepicker({monthNamesShort:['Jan','Feb','Mar','Apr','Maj','Jun','Jul','Aug','Sep','Okt','Nov','Dec']});
  获取:var monthNamesShort = $('.selector').datepicker('option', 'monthNamesShort');
  设置:$('.selector').datepicker('option', 'monthNamesShort', ['Jan','Feb','Mar','Apr','Maj','Jun','Jul','Aug','Sep','Okt','Nov','Dec']); 

navigationAsDateFormat : Boolean : false

  如果设置为true,则formatDate函数将应用到 prevText,nextText和currentText的值中显示,例如显示为月份名称。
  初始:$('.selector').datepicker({ navigationAsDateFormat: true });
  获取:var navigationAsDateFormat = $('.selector').datepicker('option', 'navigationAsDateFormat');
  设置:$('.selector').datepicker('option', 'navigationAsDateFormat', true); 

nextText : String : 'Next'

  设置“下个月”链接的显示文字。
  初始:$('.selector').datepicker({ nextText: 'Later' });
  获取:var nextText = $('.selector').datepicker('option', 'nextText');
  设置:$('.selector').datepicker('option', 'nextText', 'Later'); 

numberOfMonths : Number, Array : 1

  设置一次要显示多少个月份。如果为整数则是显示月份的数量,如果是数组,则是显示的行与列的数量。
  初始:$('.selector').datepicker({ numberOfMonths: [2, 3] });
  获取:var numberOfMonths = $('.selector').datepicker('option', 'numberOfMonths');
  设置:$('.selector').datepicker('option', 'numberOfMonths', [2, 3]); 

prevText : String : 'Prev'

设置“上个月”链接的显示文字。
  初始:$('.selector').datepicker({ prevText: 'Earlier' });
  获取:var prevText = $('.selector').datepicker('option', 'prevText');
  设置:$('.selector').datepicker('option', 'prevText', 'Earlier'); 

shortYearCutoff : String, Number : '+10'

  设置截止年份的值。如果是(0-99)的数字则以当前年份开始算起,如果为字符串,则相应的转为数字后再与当前年份相加。当超过截止年份时,则被认为是上个世纪。
  初始:$('.selector').datepicker({ shortYearCutoff: 50 });
  获取:var shortYearCutoff = $('.selector').datepicker('option', 'shortYearCutoff');
  设置:$('.selector').datepicker('option', 'shortYearCutoff', 50); 

showAnim : String : 'show'

  设置显示、隐藏日期插件的动画的名称。
  初始:$('.selector').datepicker({ showAnim: 'fold' });
  获取:var showAnim = $('.selector').datepicker('option', 'showAnim');
  设置:$('.selector').datepicker('option', 'showAnim', 'fold'); 

showButtonPanel : Boolean : false

  设置是否在面板上显示相关的按钮。
  初始:$('.selector').datepicker({ showButtonPanel: true });
  获取:var showButtonPanel = $('.selector').datepicker('option', 'showButtonPanel');
  设置:$('.selector').datepicker('option', 'showButtonPanel', true); 

showCurrentAtPos : Number : 0

  设置当多月份显示的情况下,当前月份显示的位置。自顶部/左边开始第x位。
  初始:$('.selector').datepicker({ showCurrentAtPos: 3 });
  获取:var showCurrentAtPos = $('.selector').datepicker('option', 'showCurrentAtPos');
  设置:$('.selector').datepicker('option', 'showCurrentAtPos', 3); 

showMonthAfterYear : Boolean : false

是否在面板的头部年份后面显示月份。
  初始:$('.selector').datepicker({ showMonthAfterYear: true });
  获取:var showMonthAfterYear = $('.selector').datepicker('option', 'showMonthAfterYear');
  设置:$('.selector').datepicker('option', 'showMonthAfterYear', true); 

showOn : String : 'focus' 

设置什么事件触发显示日期插件的面板,可选值:focus, button, both
  初始:$('.selector').datepicker({ showOn: 'both' });
  获取:var showOn = $('.selector').datepicker('option', 'showOn');
  设置:$('.selector').datepicker('option', 'showOn', 'both'); 

showOptions : Options : {}

如果使用showAnim来显示动画效果的话,可以通过此参数来增加一些附加的参数设置。
  初始:$('.selector').datepicker({ showOptions: {direction: 'up' });
  获取:var showOptions = $('.selector').datepicker('option', 'showOptions');
  设置:$('.selector').datepicker('option', 'showOptions', {direction: 'up'); 

showOtherMonths : Boolean : false

  是否在当前面板显示上、下两个月的一些日期数(不可选)。
  初始:$('.selector').datepicker({ showOtherMonths: true });
  获取:var showOtherMonths = $('.selector').datepicker('option', 'showOtherMonths');
  设置:$('.selector').datepicker('option', 'showOtherMonths', true); 

stepMonths : Number : 1

  当点击上/下一月时,一次翻几个月。
  初始:$('.selector').datepicker({ stepMonths: 3 });
  获取:var stepMonths = $('.selector').datepicker('option', 'stepMonths');
  设置:$('.selector').datepicker('option', 'stepMonths', 3); 

yearRange : String : '-10:+10'

  控制年份的下拉列表中显示的年份数量,可以是相对当前年(-nn:+nn),也可以是绝对值 (-nnnn:+nnnn)
  初始:$('.selector').datepicker({ yearRange: '2000:2010' });
  获取:var yearRange = $('.selector').datepicker('option', 'yearRange');
  设置:$('.selector').datepicker('option', 'yearRange', '2000:2010');

beforeShow : function(input)

  在日期控件显示面板之前,触发此事件,并返回当前触发事件的控件的实例对象。
  初始:$('.selector').datepicker({ beforeShow: function(input) { ... } }); 

beforeShowDay : function(date)

  在日期控件显示面板之前,每个面板上的日期绑定时都触发此事件,参数为触发事件的日期。调用函数后,必须返回一个数组:[0]此日期是否可选(true/false),[1]此日期的CSS样式名称(""表示默认),[2]当鼠标移至上面出现一段提示的内容。
  初始:$('.selector').datepicker({ beforeShowDay: function(date) { ... } }); 

onChangeMonthYear : function(year, month, inst)

当年份或月份改变时触发此事件,参数为改变后的年份月份和当前日期插件的实例。
  初始:$('.selector').datepicker({ onChangeMonthYear: function(year, month, inst) { ... } }); 

onClose : function(dateText, inst)

  当日期面板关闭后触发此事件(无论是否有选择日期),参数为选择的日期和当前日期插件的实例。
  初始:$('.selector').datepicker({ onClose: function(dateText, inst) { ... } }); 

onSelect : function(dateText, inst)

  当在日期面板选中一个日期后触发此事件,参数为选择的日期和当前日期插件的实例。
  $('.selector').datepicker({ onSelect: function(dateText, inst) { ... } });

以上内容给大家介绍了JQuery datepicker 用法,希望大家喜欢。

Javascript 相关文章推荐
细品javascript 寻址,闭包,对象模型和相关问题
Apr 27 Javascript
javascript小数四舍五入多种方法实现
Dec 23 Javascript
比较新旧两个数组值得增加和删除的JS代码
Oct 30 Javascript
Array栈方法和队列方法的特点说明
Jan 24 Javascript
JavaScript实现梯形乘法表的方法
Apr 25 Javascript
Javascript函数式编程简单介绍
Oct 11 Javascript
动态加载js、css的实例代码
May 26 Javascript
webpack入门+react环境配置
Feb 08 Javascript
使用原生js写ajax实例(推荐)
May 31 Javascript
利用Vconsole和Fillder进行移动端抓包调试方法
Mar 05 Javascript
vue2路由方式--嵌套路由实现方法分析
Mar 06 Javascript
vue 组件间的通信之子组件向父组件传值的方式
Jul 29 Javascript
一道JS前端闭包面试题解析
Dec 25 #Javascript
干货分享:让你分分钟学会javascript闭包
Dec 25 #Javascript
javascript生成img标签的3种实现方法(对象、方法、html)
Dec 25 #Javascript
谈谈我对JavaScript中typeof和instanceof的深入理解
Dec 25 #Javascript
JavaScript中Window对象的属性及事件
Dec 25 #Javascript
JavaScript字符串删除重复字符的方法
Dec 25 #Javascript
JavaScript如何实现在文本框(密码框)输入提示语
Dec 25 #Javascript
You might like
JAVA/JSP学习系列之四
2006/10/09 PHP
PHP中key和current,next的联合运用实例分析
2016/03/29 PHP
redis+php实现微博(二)发布与关注功能详解
2019/09/23 PHP
JS解密入门之凭直觉解
2008/06/25 Javascript
javascript 尚未实现错误解决办法
2008/11/27 Javascript
Javascript 同时提交多个Web表单的方法
2009/02/19 Javascript
根据IP的地址,区分不同的地区,查看不同的网站页面的js代码
2013/02/26 Javascript
关于jquery css的使用介绍
2013/04/18 Javascript
jquery制作搜狐快站页面效果示例分享
2014/02/21 Javascript
用JQuery实现全选与取消的两种简单方法
2014/02/22 Javascript
JavaScript避免代码的重复执行经验技巧分享
2014/04/17 Javascript
js 操作符汇总
2014/11/08 Javascript
Nodejs关于gzip/deflate压缩详解
2015/03/04 NodeJs
用js编写的简单的计算器代码程序
2015/08/04 Javascript
js HTML5多图片上传及预览实例解析(不含前端的文件分割)
2016/08/26 Javascript
微信小程序实战之运维小项目
2017/01/17 Javascript
BootStrap注意事项小结(五)表单
2017/03/10 Javascript
理解 javascript 中的函数表达式与函数声明
2017/07/07 Javascript
关于JavaScript中forEach和each用法浅析
2017/07/27 Javascript
jQuery实现点击自身以外区域关闭弹出层功能完整示例【改进版】
2018/07/31 jQuery
vue项目添加多页面配置的步骤详解
2019/05/22 Javascript
python中常用的九种预处理方法分享
2016/09/11 Python
Python并发编程协程(Coroutine)之Gevent详解
2017/12/27 Python
Python中矩阵创建和矩阵运算方法
2018/08/04 Python
python实现KNN分类算法
2019/10/16 Python
Python函数基本使用原理详解
2020/03/19 Python
详解Pycharm与anaconda安装配置指南
2020/08/25 Python
KARATOV珠宝在线商店:俄罗斯珠宝品牌
2019/03/13 全球购物
美丽的珠宝配饰:SmallThings
2019/09/04 全球购物
父亲追悼会答谢词
2014/01/17 职场文书
给老婆大人的检讨书
2014/02/24 职场文书
法学专业求职信
2014/07/15 职场文书
教师个人培训总结
2015/02/11 职场文书
入党介绍人意见2015
2015/06/01 职场文书
五一晚会主持词
2015/07/01 职场文书
2015年卫生局工作总结
2015/07/24 职场文书