更新时间:2021-04-21 00:31:25
DatePicker是基于moment.js的日期选择器插件,支持小时、日、周、月、季、年的日期选择方式
它简单、好用
引入CSS文件
1 2 | < link rel = "stylesheet" href = "./index.css" > |
引入javascript文件
1 2 3 | <script src= "./jquery-1.12.4.js" ></script> <script src= "./moment.js" ></script> <script src= "./jquery.datePicker.js" ></script> |
DOM结构
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | < div class = "wrap" > < div class = "wrap-l" > < i class = "ali-iconfont ali-iconshizhong" ></ i > < div class = "wrap-l-starTime" > < input name = "startTime" type = "text" placeholder = "开始日期" > </ div > </ div > < div class = "wrap-r" > < i class = "ali-iconfont ali-iconshizhong" ></ i > < div class = "wrap-l-endTime" > < input name = "endTime" type = "text" placeholder = "结束日期" > </ div > </ div > </ div > |
调用方式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | $( '.wrap' ).on( 'click' , function () { var _this = this ; var reportTimeType = 4; var double = true ; if (!$( this ).next( '[name="datePicker"]' ).length) { $( this ).after( "<div class='datePicker-x' name='datePicker'></div>" ); datePicker = $( '.datePicker-x' ).datePicker({ reportTimeType: reportTimeType, // 4代表小时、5代表天、6代表周、7代表月、8代表季、9代表年 startDom: $(_this).find( 'input[name="startTime"]' ), // 开始时间要赋值的DOM元素 endDom: $(_this).find( 'input[name="endTime"]' ), // 结束时间要赋值的DOM元素 format: 'YYYY-MM-DD HH:mm:ss' , fastTime: fastTime[double][reportTimeType], // 快速选择的时间 isFast: true , // 是否显示快速选择的选项 isDouble: double, // 是否双选择的日历 disabledDate: false , // 是否禁用以后的时间 yes: function (startTime, endTime) { // 成功赋值前的回调可改变赋值的时间格式 }, }); } else { if ($( this ).next( '[name="datePicker"]' ).hasClass( 'hide' )) { $( this ).next( '[name="datePicker"]' ).removeClass( 'hide' ); datePicker.render(); } else { $( this ).next( '[name="datePicker"]' ).addClass( 'hide' ); } } }); |
参数说明
名称 | 默认值 | 说明 |
reportTimeType | 4 | 4: 小时、5: 天、6: 周、7: 月、8: 季、9:年 |
startDom | container | 开始时间的赋值DOM对象 |
endDom | container | 结束时间的赋值DOM对象 |
format | YYYY-MM-DD HH:mm:ss | 只针对小时的格式化对象 |
fastTime | 默认值详见下方快速选择参数格式 | 快速选择的时间格式 |
isFast | false | 是否显示快速选择面板 |
isDouble | false | 是否是单双选日历 |
disabledDate | false | 是否禁用当前之后的时间不可选择 |
yes | 确认选择后赋值前的格式化回调函数,可改变赋值元素的时间格式 |
快速选择的格式参数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 | var fastTime = { true : { 4: { // 双日历天、小时的快速选择格式 '最近7天' : { startTime: moment().subtract(7, 'day' ).format( 'YYYY-MM-DD HH:mm:ss' ), endTime: moment().format( 'YYYY-MM-DD HH:mm:ss' ) }, '最近一个月' : { startTime: moment().subtract(1, 'month' ).format( 'YYYY-MM-DD HH:mm:ss' ), endTime: moment().format( 'YYYY-MM-DD HH:mm:ss' ) }, '最近三个月' : { startTime: moment().subtract(3, 'month' ).format( 'YYYY-MM-DD HH:mm:ss' ), endTime: moment().format( 'YYYY-MM-DD HH:mm:ss' ) } }, 5: { // 双日历天、小时的快速选择格式 '最近7天' : { startTime: moment().subtract(7, 'day' ).format( 'YYYY-MM-DD HH:mm:ss' ), endTime: moment().format( 'YYYY-MM-DD HH:mm:ss' ) }, '最近一个月' : { startTime: moment().subtract(1, 'month' ).format( 'YYYY-MM-DD HH:mm:ss' ), endTime: moment().format( 'YYYY-MM-DD HH:mm:ss' ) }, '最近三个月' : { startTime: moment().subtract(3, 'month' ).format( 'YYYY-MM-DD HH:mm:ss' ), endTime: moment().format( 'YYYY-MM-DD HH:mm:ss' ) } }, 6: { // 双日历周的快速选择格式 '本周' : { startTime: moment().startOf( 'week' ).subtract(0, 'week' ).format( 'YYYY-MM-DD HH:mm:ss' ), endTime: moment().endOf( 'week' ).format( 'YYYY-MM-DD HH:mm:ss' ) }, '最近2周' : { startTime: moment().startOf( 'week' ).subtract(2, 'week' ).format( 'YYYY-MM-DD HH:mm:ss' ), endTime: moment().endOf( 'week' ).format( 'YYYY-MM-DD HH:mm:ss' ) }, '最近4周' : { startTime: moment().startOf( 'week' ).subtract(4, 'week' ).format( 'YYYY-MM-DD HH:mm:ss' ), endTime: moment().endOf( 'week' ).format( 'YYYY-MM-DD HH:mm:ss' ) }, '最近8周' : { startTime: moment().startOf( 'week' ).subtract(8, 'week' ).format( 'YYYY-MM-DD HH:mm:ss' ), endTime: moment().endOf( 'week' ).format( 'YYYY-MM-DD HH:mm:ss' ) }, }, 7: { // 双日历月的快速选择格式 "本月" : { startTime: moment().startOf( 'month' ).format( 'YYYY-MM-DD HH:mm:ss' ), endTime: moment().endOf( 'month' ).format( 'YYYY-MM-DD HH:mm:ss' ) }, "本年" : { startTime: moment().startOf( 'year' ).format( 'YYYY-MM-DD HH:mm:ss' ), endTime: moment().endOf( 'month' ).format( 'YYYY-MM-DD HH:mm:ss' ) }, "最近六个月" : { startTime: moment().startOf( 'month' ).subtract(6, 'month' ).format( 'YYYY-MM-DD HH:mm:ss' ), endTime: moment().endOf( 'month' ).format( 'YYYY-MM-DD HH:mm:ss' ) } }, 8: { // 双日历季的快速选择格式 "本季度" : { startTime: moment().startOf( 'quarter' ).format( 'YYYY-MM-DD HH:mm:ss' ), endTime: moment().endOf( 'quarter' ).format( 'YYYY-MM-DD HH:mm:ss' ) }, "今年至今" : { startTime: moment().startOf( 'year' ).format( 'YYYY-MM-DD HH:mm:ss' ), endTime: moment().endOf( 'quarter' ).format( 'YYYY-MM-DD HH:mm:ss' ) }, "上一季度" : { startTime: moment().subtract(1, 'quarter' ).startOf( 'quarter' ).format( 'YYYY-MM-DD HH:mm:ss' ), endTime: moment().subtract(1, 'quarter' ).endOf( 'quarter' ).format( 'YYYY-MM-DD HH:mm:ss' ) } }, 9: { // 双日历年的快速选择格式 "今年" : { startTime: moment().startOf( 'year' ).format( 'YYYY-MM-DD HH:mm:ss' ), endTime: moment().endOf( 'year' ).format( 'YYYY-MM-DD HH:mm:ss' ) }, "近一年" : { startTime: moment().subtract(1, 'year' ).startOf( 'year' ).format( 'YYYY-MM-DD HH:mm:ss' ), endTime: moment().endOf( 'year' ).format( 'YYYY-MM-DD HH:mm:ss' ) }, "近二年" : { startTime: moment().subtract(2, 'year' ).startOf( 'year' ).format( 'YYYY-MM-DD HH:mm:ss' ), endTime: moment().endOf( 'year' ).format( 'YYYY-MM-DD HH:mm:ss' ) }, "近十一年" : { startTime: moment().subtract(11, 'year' ).startOf( 'year' ).format( 'YYYY-MM-DD HH:mm:ss' ), endTime: moment().endOf( 'year' ).format( 'YYYY-MM-DD HH:mm:ss' ) } } }, false : { 4: { // 单日历天和小时的快速时间选择格式 '今天' : { startTime: moment().format( 'YYYY-MM-DD HH:mm:ss' ) }, '昨天' : { startTime: moment().subtract(1, 'day' ).format( 'YYYY-MM-DD HH:mm:ss' ) }, '一周前' : { startTime: moment().subtract(7, 'day' ).format( 'YYYY-MM-DD HH:mm:ss' ) }, }, 5: { // 单日历天和小时的快速时间选择格式 '今天' : { startTime: moment().format( 'YYYY-MM-DD HH:mm:ss' ) }, '昨天' : { startTime: moment().subtract(1, 'day' ).format( 'YYYY-MM-DD HH:mm:ss' ) }, '一周前' : { startTime: moment().subtract(7, 'day' ).format( 'YYYY-MM-DD HH:mm:ss' ) }, }, 6: { // 单日历周的快速选择格式 &nb |