移动端很多时候需要一个日期选择器,因为应用中可能会用到各种框架库(Vue.js、React.js、zepto.js等);所以说一个无依赖的,方便上层封装。话不多说,先来看看动画效果:可以看到整个风格都是MaterialDesign风格,主要特点有:手势操作:左右滑动切换月份,当然还有动画效果仍然需要。快速选择年月:点击年部分切换到年选择界面,点击月、日、周来回切换__主日期选择界面和月份选择界面(如果点击非日期选择主界面,会切换到主界面,点击主界面,会切换到快速选择月份界面);当然,年级选择月份的界面一定要有流畅的滑动效果。时钟式时间选择:直接简单的时间选择。安装使用webpack打包,支持UMD,暴露全局DateTimePicker变量。当然你也可以选择通过npm安装:npmidate-time-picker。有两种主要类型的选择器:日期和时间。日期选择器DatePickerbtn.onclick=function(){vardatePicker=newDateTimePicker.Date(options,config)datePicker.on('selected',function(formatDate,now){//formatData=2016-10-19//now=Date示例->WedOct19201620:28:12GMT+0800(CST)})}时间选择器TimePickerbtn.onclick=function(){vartimePicker=newDateTimePicker.Time(options,config)timePicker.on('selected',function(formatTime,now){//formatTime=18:30//now=Date实例->WedOct19201618:30:13GMT+0800(CST)})}API和事件API:picker.show()picker.hide()picker.destroy()事件:picker//点击确定.on('selected',function(formatValue,now){console.log(formatValue,now)})//点击取消,同时触发`destroy`事件.on('canceled',function(){console.log('canceled')})//Destroy.on('destroy',function(){console.log('destroy')})options和config可以从实例化Picker时top有两个可选参数:options和config。还要区分DatePicker和TimePicker。DatePickerOptions{lang:'EN',//语言,默认'EN',默认'EN','zh-CN'optionalformat:'yyyy-MM-dd',//格式,'yyyy-MM-dd'default:'2016-10-19',//默认值`newDate()`。如果`default`有一个值并且是一个字符串,它将根据`format`参数转换为`Date`实例。当然,你可以选择传入一个日期实例。}TimePickerOptions{lang:'EN',//语言,默认'EN',默认'EN','zh-CN'optionalformat:'HH:mm',//format,'HH:mm'default:'12:27',//默认值`newDate()`。如果`default`有一个值并且是一个字符串,它将根据`format`参数转换为`Date`实例。可选的,也可以传入一个Date实例minuteStep:5//分钟精度,默认为5','星期三','星期四','星期五','星期六'],shortDay:['日','一','二','三','四','五','六'],MDW:'MMonthDDayD',//ThetitlepartofthemainpanelMonthDayWeekYM:'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyearmanner:'yyyyMmonths',//dateparttitledisplayOK:'OK',//OKbuttonCANCEL:'Cancel'//Cancelbutton}默认英文配置(EN):{day:['Sun','Mon','Tue','Wed','Thu','Fri','Sat'],shortDay:['S','M','T','W','T','F','S'],MDW:'D,MM-d',YM:'yyyy-M',OK:'OK',取消:'取消'}
