移动端material风格日期时间选择器

好多时候在移动端需要一个的日期选择器,由于在应用上有可能应用各种框架库(Vue.js, React.js, zepto.js等);所以说一个无依赖的,这样易于上层进行封装。直接开门见山,先来张动图看看效果:

Select date and time

可以看出整个风格就是 Material Design 风格的,主要特点就是:

  • 手势操作:左划右划切换月份,当然动画效果还是要有的。

  • 快速选择年月:点击部分切换到选择年界面,点击月日周会__来回切换__到主日期选择界面和月份选择界面(如果在非日期选择主界面点击就会切换到主界面,如果在主界面点击就切换到快速选择月份界面);当然选择年一级选择月份界面要有顺滑的滑动效果。

  • 钟表样式时间选择:直接、简单选择时间。

安装使用

利用webpack打包,支持UMD,暴露全局DateTimePicker变量,当然可以选择通过npm安装:npm i date-time-picker即可。主要包含两种选择器:日期和时间。

日期选择器 DatePicker
btn.onclick = function () {
  var datePicker = new DateTimePicker.Date(options, config)
  datePicker.on('selected', function (formatDate, now) {
    // formatData = 2016-10-19
    // now = Date实例 -> Wed Oct 19 2016 20:28:12 GMT+0800 (CST)
  })
}
时间选择器 TimePicker
btn.onclick = function () {
  var timePicker = new DateTimePicker.Time(options, config)
  timePicker.on('selected', function (formatTime, now) {
    // formatTime = 18:30
    // now = Date实例 -> Wed Oct 19 2016 18:30:13 GMT+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')
  })
  // 销毁
  .on('destroy', function () {
    console.log('destroy')
  })

options 和 config

从上边可以看到在实例化Picker的时候有两个参数可选:optionsconfig

同样区分下DatePickerTimePicker

DatePicker Options
{
  lang: 'EN', // 语言,默认 'EN' ,默认 'EN', 'zh-CN' 可选
  format: 'yyyy-MM-dd', // 格式, 'yyyy-MM-dd'
  default: '2016-10-19', // 默认值 `new Date()`。 如果`default`有值且是字符串的话就会根据`format`参数来将其转化为一个`Date`实例。当然可以选择传入一个日期实例。
}
TimePicker Options
{
  lang: 'EN', // 语言,默认 'EN' ,默认 'EN', 'zh-CN' 可选
  format: 'HH:mm', // 格式, 'HH:mm'
  default: '12:27', // 默认值 `new Date()`。 如果`default`有值且是字符串的话就会根据`format`参数来将其转化为一个`Date`实例。同样可以选择传入一个日期实例。
  minuteStep: 5 // 分钟精度,默认值 5。
}
Config

默认中文(zh-CN)配置:

{
  day: ['周日', '周一', '周二', '周三', '周四', '周五', '周六'],
  shortDay: ['日', '一', '二', '三', '四', '五', '六'],
  MDW: 'M月d日D', // 主面板标题部分 月日星期
  YM: 'yyyy年M月', // 日期部分标题显示
  OK: '确定', // 确定按钮
  CANCEL: '取消' // 取消按钮
}

默认英语配置(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',
  CANCEL: 'CANCEL'
}

在线查看

如果你是用手机访问请直接点击 http://demo.aijc.net/js/date-time-picker/dist/example.html;或者手机扫描二维码即可查看:

QR

项目

地址:https://github.com/dolymood/date-time-picker

欢迎拍砖,试用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用 Material UI 5.12.2 版本的日期选择器,您需要使用 DatePicker 组件。下面是一个示例代码,展示了如何使用 DatePicker 组件: ```jsx import React, { useState } from 'react'; import { DatePicker } from '@mui/lab'; import AdapterDateFns from '@mui/lab/AdapterDateFns'; import LocalizationProvider from '@mui/lab/LocalizationProvider'; function App() { const [selectedDate, setSelectedDate] = useState(null); const handleDateChange = (date) => { setSelectedDate(date); }; return ( <LocalizationProvider dateAdapter={AdapterDateFns}> <DatePicker label="Select Date" value={selectedDate} onChange={handleDateChange} renderInput={(params) => <TextField {...params} />} /> </LocalizationProvider> ); } export default App; ``` 在这个示例中,我们导入了 DatePicker 组件、AdapterDateFns 和 LocalizationProvider 组件。DatePicker 组件用于显示日期选择器,并且会根据用户的选择更新选定的日期。AdapterDateFns 组件用于将日期适配到 DateFns 库中,LocalizationProvider 组件用于为 DatePicker 提供本地化设置。 在 App 组件中,我们创建了一个名为 selectedDate 的状态变量,并将其初始值设置为 null。我们还创建了一个名为 handleDateChange 的函数,用于更新 selectedDate 的值。在返回的 JSX 中,我们将 DatePicker 组件包裹在 LocalizationProvider 组件中,并将 AdapterDateFns 组件作为其 dateAdapter 属性的值传递。我们将 selectedDate 值绑定到 DatePicker 组件的 value 属性,并将 handleDateChange 函数绑定到 onChange 属性。我们还使用 renderInput 属性将 TextField 组件传递给 DatePicker 组件,以便为其提供输入框。 以上就是使用 Material UI 5.12.2 版本的 DatePicker 组件的示例代码。您可以根据自己的需要进行调整和修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值