广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >uniapp实现日期时间选择器
  • 131
分享到

uniapp实现日期时间选择器

2024-04-02 19:04:59 131人浏览 八月长安
摘要

本文实例为大家分享了uniapp实现日期时间选择器的具体代码,供大家参考,具体内容如下 由于项目需求需要,尝试过使用Vant组件库,但是一直出现问题,插件市场的插件又不太符合需求,使

本文实例为大家分享了uniapp实现日期时间选择器的具体代码,供大家参考,具体内容如下

由于项目需求需要,尝试过使用Vant组件库,但是一直出现问题,插件市场的插件又不太符合需求,使用就查了相关资料,最终捣鼓的效果如下:

首先现在根目录下创建util文件夹放dateTimePicker.js

dateTimePicker.js


function withData(param){
  return param < 10 ? '0' + param : '' + param;
}
function getLoopArray(start,end){
  var start = start || 0;
  var end = end || 1;
  var array = [];
  for (var i = start; i <= end; i++) {
    array.push(withData(i));
  }
  return array;
}
function getMonthDay(year,month){
  var flag = year % 400 == 0 || (year % 4 == 0 && year % 100 != 0), array = null;

  switch (month) {
    case '01':
    case '03':
    case '05':
    case '07':
    case '08':
    case '10':
    case '12':
      array = getLoopArray(1, 31)
      break;
    case '04':
    case '06':
    case '09':
    case '11':
      array = getLoopArray(1, 30)
      break;
    case '02':
      array = flag ? getLoopArray(1, 29) : getLoopArray(1, 28)
      break;
    default:
      array = '月份格式不正确,请重新输入!'
  }
  return array;
}
function getNewDateArry(){
  // 当前时间的处理 年月日时分秒
  var newDate = new Date();
  var year = withData(newDate.getFullYear()),
      mont = withData(newDate.getMonth() + 1),
      date = withData(newDate.getDate()),
      hour = withData(newDate.getHours()),
      minu = withData(newDate.getMinutes());
      // seco = withData(newDate.getSeconds());

  return [year, mont, date, hour, minu];
}
function dateTimePicker(startYear,endYear,date) {
  // 返回默认显示的数组和联动数组的声明
  var dateTime = [], dateTimeArray = [[],[],[],[],[]];
  var start = startYear || 1978;
  var end = endYear || 2100;
 
 //处理传过来的字符串转化为数组
 let dataArr = date.split(" ")[0].split('/')
 let time = date.split(" ")[1].split(':')
  // 默认开始显示数据 如果把自定义值传过来的话就使用自定义时间 否则用当前时间  ...dataArr数组解构
  var defaultDate = date ? [...dataArr, ...time] : getNewDateArry();
 
  // 处理联动列表数据
  
  dateTimeArray[0] = getLoopArray(start,end);
  dateTimeArray[1] = getLoopArray(1, 12);
  dateTimeArray[2] = getMonthDay(defaultDate[0], defaultDate[1]);
  dateTimeArray[3] = getLoopArray(0, 23);
  dateTimeArray[4] = getLoopArray(0, 59);
  // dateTimeArray[5] = getLoopArray(0, 59);
 
 //遍历dateTimeArray数组
  dateTimeArray.forEach((current,index) =>
  //匹配defaultDate[index]值在current数组中的位置
    dateTime.push(current.indexOf(defaultDate[index]))
  );

  return {
    dateTimeArray: dateTimeArray,
    dateTime: dateTime
  }
}
module.exports = {
  dateTimePicker: dateTimePicker,
  getMonthDay: getMonthDay
}

template模板


<picker mode="multiSelector" :range="dateTimeArray"  v-model="dateTime" @change="change" @columnchange="columnchange">
 <view>
  //disable = "true" 是禁用input 防止点击弹出键盘
  <input type="text" disabled="true" v-model="upTower" placeholder="请选择时间" placeholder-class="inputPlace" />
 </view>
</picker>

script部分


//引入事先声明的类
const dateTimePicker = require('@/util/dateTimePicker.js')
 export default {
  data() {
   return {
    // 时间选择器
    dateTimeArray: null,
    dateTime: null,
    startYear: 2000,
    endYear: 2050,
   };
  },
  onLoad() {
   //传入开始展示年份startYear 结束展示年份endYear
   //自定义开始显示时间
   let arr = '2018/09/01 13:00'
   let obj = dateTimePicker.dateTimePicker(this.startYear, this.endYear,arr)
   this.dateTimeArray = obj.dateTimeArray
   this.dateTime = obj.dateTime
  },
  methods: {
   //时间格式化
   withData(param){
    return param < 10 ? '0' + param : '' + param;
   },
   change(e){
    let value = []
    e.detail.value.forEach((val,index) => {
     value.push(this.withData(val))
    })
    let dateArray = "20" + value[0] + "-" + value[1] + "-" + value[2] + " " + value[3] + ":" + value[4]
    this.upTower = dateArray
   },
   columnchange(e){
    let dateArr = this.dateTimeArray
    let arr = this.dateTime
    //滑动所在列的数据并对其值进行更新
    arr[e.detail.column] = e.detail.value
    //更新展示月份对应的天数(28 or 29 or 30 or 31)
    dateArr[2] = dateTimePicker.getMonthDay(dateArr[0][arr[0]], dateArr[1][arr[1]])
    //最后把最新的数值赋值到dateTimeArray
    this.dateTimeArray = dateArr
    this.dateTime = arr
   },

picker属性中 :range=“dateTimeArray” =》dateTimeArray 二维数组,长度表示多少列,数组的每项表示每列的数据 这是多列选择器展示的重点所在

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: uniapp实现日期时间选择器

本文链接: https://www.lsjlt.com/news/154378.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • uniapp实现日期时间选择器
    本文实例为大家分享了uniapp实现日期时间选择器的具体代码,供大家参考,具体内容如下 由于项目需求需要,尝试过使用Vant组件库,但是一直出现问题,插件市场的插件又不太符合需求,使...
    99+
    2022-11-12
  • Android时间选择器、日期选择器实现代码
    本文为大家分享了两款选择器,一款可以针对时间进行选择、一款可以针对日期进行选择,供大家参考,具体内容如下 一、时间选择器 1.1.布局 <?xml ver...
    99+
    2022-06-06
    选择器 选择 Android
  • ElementUI日期选择器时间选择范围限制的实现
    目录单个输入框的情景1: 设置选择今天以及今天之后的日期情景2: 设置选择今天以及今天以前的日期情景3: 设置选择今天之后的日期(不能选择当天时间)两个输入框情景1: 限制结束日期不...
    99+
    2022-11-13
  • Android实现日期时间选择对话框
    日期/时间选择对话框(DatePickerDialog和TimePickerDialog)的使用,供大家参考,具体内容如下 <LinearLayout xmlns:a...
    99+
    2022-11-12
  • 小程序日期时间选择器怎么实现
    今天小编给大家分享一下小程序日期时间选择器怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。  要用到picker组件,...
    99+
    2023-06-26
  • uniapp 小程序 picker 日期时间段选择(精确到年月日时分)
    效果图: picker时间段选择 需要引入moment.js,有可能引入后在项目内会报错,可以考虑把选择日期作为一个组件引入 timepage.vue组件封装 请选择{{momen...
    99+
    2023-09-08
    uni-app 小程序 微信小程序
  • Android开发实现日期时间控件选择
    本文实例为大家分享了Android开发实现日期时间控件选择的具体代码,供大家参考,具体内容如下 前言 整合Android原生控件(日期控件DatePicker、时间控件TimePic...
    99+
    2022-11-13
  • Android studio实现日期 、时间选择器与进度条
    本文实例为大家分享了Android studio实现日期 、时间选择器与进度条,供大家参考,具体内容如下 日期选择器 public void onclick(View v){    ...
    99+
    2022-11-13
  • uniapp 小程序 picker 日期时间段选择(精确到年月日时分+周几)
    效果图: picker时间选择器 精确到年月日时分+周几 需要引入moment.js,有可能引入后在项目内会报错,可以考虑把选择日期作为一个组件引入 timepage.vue组件封装 请选择{{moment(trave...
    99+
    2023-08-24
    uni-app 小程序 chrome
  • Android中如何实现一个日期和时间选择器
    这篇文章给大家介绍Android中如何实现一个日期和时间选择器,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。抽出来了一个方法来选择时间(这里自己规定的只能选择当前时间以后的日期),日期选择完毕就会自动弹出时间选择器让选...
    99+
    2023-05-30
    android
  • Uniapp小程序 时间段选择限制(开始日期 结束日期相互限制)
    效果图:   在这里我使用的是uview中的日期时间选择器,初始话的时候将可选的最小时间设置为当前时间的时间戳,并将开始时间的可选的最大时间初始化为10年后(方便之后做限制操作) 在确定选择开始时间的时候 将结束时间可选的最小时间设置...
    99+
    2023-09-03
    微信小程序
  • 小程序日期(日历)时间 选择器组件
    封装一个小程序日期(日历)时间 选择器组件 简要说明: 一共两个版本 ,date-time-picker 和 date-time-picker-plus. date-time-picker 弹窗层...
    99+
    2023-09-01
    小程序 javascript ui
  • Android 应用系统的日期和时间选择器
    一、日期选择期 private void showDatePicker() { Calendar calendar = Calendar.getInstance(); DatePickerDialog dateP...
    99+
    2023-10-09
    android
  • 微信小程序实现日期时间筛选器
    开发微信小程序过程中,有个需求需要用到日期时间筛选器,查看微信官方文档后,发现官方文档的picker筛选器只能单独支持日期或者是时间,所以为了实现需求自己参考企业微信封装了个日期时间...
    99+
    2022-11-13
  • Android之日期时间选择控件DatePicker和TimePicker实例
    这个月根据需求在项目中做了一个时间选择器,虽然没有用到Android原生的时间选择控件,但我羞愧地发现自己竟然从来没有用过这方面控件!趁现在有时间,赶紧查缺补漏,写一篇博客吧。(注:为了便于区分,本文将选择年月日的控件称为日期选择控件,将选...
    99+
    2023-05-31
    datepicker android timepicker
  • Vue怎么自定义验证日期时间选择器
    这篇文章主要介绍了Vue怎么自定义验证日期时间选择器的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue怎么自定义验证日期时间选择器文章都会有所收获,下面我们一起来看看吧。Vue自定义验证之日期时间选择器自定义...
    99+
    2023-06-29
  • 如何解决element-ui日期时间选择器的日期格式化问题
    小编给大家分享一下如何解决element-ui日期时间选择器的日期格式化问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!最近在...
    99+
    2022-10-19
  • jquery实现时间选择器
    本文实例为大家分享了jquery实现时间选择器的具体代码,供大家参考,具体内容如下 效果图: 代码: <!DOCTYPE html> <html> &...
    99+
    2022-11-12
  • JS实现时间选择器
    本文实例为大家分享了JS实现时间选择器的具体代码,供大家参考,具体内容如下 dateTime.js function withData(param) {   return param...
    99+
    2022-11-13
  • Vue日期时间选择器组件使用方法详解
    本文实例为大家分享了Vue日期时间选择器组件的具体代码,供大家参考,具体内容如下 1.效果图如下 单选日期选择器 多选日期选择器 日期时间选择器 2.准备 Date原型格式化工...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作