精华内容
下载资源
问答
  • 这是一个时间选择器,自定义的轮子,选择不同的年月日。有需要的朋友可以下载一下。
  • 时间年月日PPT课件

    2020-12-25 22:14:42
    本课件充分展示了关于年月日的相关知识点,帮助老师更好的完成本科的教学,是很好的教学辅助工具。...该文档为时间年月日PPT课件,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看看
  • 小程序自定义picker实现年月日时分和年月日时分秒时间选择器 最近在做公司的一个小程序项目中需要用到选择年月日时分秒的地方,然后我去小程序开发文档上看了看好像没有直接可以选择年月日时分秒的选择器组件,所以...

    小程序自定义picker实现年月日时分和年月日时分秒时间选择器

    最近在做公司的一个小程序项目中需要用到选择年月日时分秒的地方,然后我去小程序开发文档上看了看好像没有直接可以选择年月日时分秒的选择器组件,所以周末我就花了些时间封装了一个可以选择年月日时分秒和年月日时分的时间选择器组件。希望能够帮助到有需要的人!

    代码我已经提交到码云上面了,可以通过这个链接下载我的代码:
    https://gitee.com/yuanyifei666/wxDateTimePicker.git

    下载后在components目录下的date-time-picker就是我封装的时间选择器组件了
    在这里插入图片描述
    直接把我的这date-time-picker目录复制到你的项目里,然后在要使用到该组件的页面的json文件中引入该组件,注意路径要正确!(我这里以index页面为例子)

    {
      "usingComponents": {
        "date-time-picker": "/components/date-time-picker/index"
      },
      "navigationBarTitleText": "封装时间选择器组件"
    }
    

    然后在index.wxml文件中使用该组件

    <!--pages/index/index.wxml-->
    <date-time-picker
       mode="dateminute" 
       value="{{dateMinute}}"
       bindchange="selectDateMinuteChange"> 
      <view class="show-date-time-box">年月日时分: {{dateMinute}}</view>
    </date-time-picker>
     
     <date-time-picker
       mode="datetime" 
       value="{{dateSecond}}"
       bindchange="selectDateSecondChange"> 
      <view class="show-date-time-box">年月日时分秒: {{dateSecond}}</view>
    </date-time-picker>
    

    属性说明:
    1、mode:选择器类型
    mode 的合法值:
    dateminute: 年月日时分选择器(2019-11-30 11:03)
    datetime: 时间选择器(2019-11-30 11:03:17)
    2、value:选择器的值
    3、bindchange:value 改变时触发 change 事件,可以获得选择的值

    index.js文件里的代码如下:

    //index.js
    //获取应用实例
    const app = getApp()
    
    Page({
      data: {
        dateMinute: '',
        dateSecond: ''
      },
      /**
       * 年月日时分选择类型的回调函数,可以在该函数得到选择的时间
       */
      selectDateMinuteChange(ev) {
        this.setData({
          dateMinute: ev.detail.value
        })
      },
      /**
       * 年月日时分秒选择类型的回调函数,可以在该函数得到选择的时间
       */
      selectDateSecondChange(ev) {
        this.setData({
          dateSecond: ev.detail.value
        })
      }
    })
    
    

    以上就是组件简单的使用,下面就是该组件具体的实现代码了
    js代码:

    // components/date-time-picker/index.js
    
    Component({ 
      /**
       * 定义组件生命周期函数
       */
      lifetimes: {
        attached() {
          // =====初始化时间选择器====
          this._initDateTimePickerFn()
        },
        detached() {
    
        }
      },
      /**
       * 对 <2.2.3 版本基础库的兼容
       */
      attached() {
        // =====初始化时间选择器====
        this._initDateTimePickerFn()
      },
      detached() {
      
      },
      /**
       * 组件相关配置项
       */
      options: {
        multipleSlots: true // 开启使用多个插槽
      },
      /**
       * 组件的属性列表
       */
      properties: {
        mode: {  // 选择器类型
          type: String,
          require: true
        },
        value: { // 回显的时间
          type: String,
          value: ''
        }
      },
    
      /**
       * 组件的初始数据
       */
      data: {
        rangeList: [],
        rangeValue: [],
        dateDetails: ['年','月', '时', '分', '秒']
      },
    
      /**
       * 组件的方法列表
       */
      methods: {
        /**
         * 初始化时间选择器
         */
        _initDateTimePickerFn() {
          try {
            const { value, mode} = this.data
            if (mode != 'dateminute' && mode != 'datetime') {
              throw new CommonException('请输入合法的时间选择器类型!', -1)
            }
            //====获取到当前时间===
            let showTimeValue = this._validateShowTime(value, mode)
    
            // ====获取年份====
            const currentYear = showTimeValue.substring(0, showTimeValue.indexOf('-'))
            const currentMouth = showTimeValue.split(" ")[0].split('-')[1]
            const yearList = this._gotDateTimeList({
              _start: Number(currentYear) - 100,
              _end: Number(currentYear) + 100, _type: 0
            })
            // ====获取月份===
            const monthList = this._gotDateTimeList({ _start: 1, _end: 12, _type: 1 })
            //====获取天数===
            const dayList = this._gotDayList(currentYear, currentMouth)
            // ====获取小时===
            const hourList = this._gotDateTimeList({ _start: 0, _end: 23, _type: 2 })
            // ====获取分钟===
            const munithList = this._gotDateTimeList({ _start: 0, _end: 59, _type: 3 })
            // ====获取秒===
            const secondList = this._gotDateTimeList({ _start: 0, _end: 59, _type: 4 })
    
            let rangeList = new Array()
            rangeList.push(yearList)
            rangeList.push(monthList)
            rangeList.push(dayList)
            rangeList.push(hourList)
            rangeList.push(munithList)
            mode === "datetime" && rangeList.push(secondList)
            this.setData({
              rangeList
            }, () => {
              this._echoDateTime(showTimeValue) // 初始化时间显示
            })
          } catch(err) {
            console.log(err)
          }
        },
        /**
         * 验证显示的时间是否合法
         * @param {Number} _value 要验证的时间
         * @param {Number} _mode  选择器类型
         */
        _validateShowTime(_value, _mode){
          let currentTime = formatTime(new Date()).replace(/\//g, "-")
          let showTimeValue = _value.trim() || currentTime
          const secondReg = /^\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}$/
          const munithReg = /^\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}$/
          if (_mode === 'dateminute') { // yyyy-MM-dd HH:mm
            // 验证是否合法
            secondReg.test(showTimeValue) && (showTimeValue = showTimeValue.substring(0, showTimeValue.lastIndexOf(':')))
            munithReg.test(showTimeValue) || (showTimeValue = currentTime.substring(0, currentTime.lastIndexOf(':')))
          } else { // yyyy-MM-dd HH:mm:ss
            munithReg.test(showTimeValue) && (showTimeValue += ':00')
            secondReg.test(showTimeValue) || (showTimeValue = currentTime)
          }
          return showTimeValue
        },
      
        /**
         * 获取年份、月份、小时、分钟、秒
         * @param {Number} _start 开始值
         * @param {Number} _end   结束值
         * @param {Number} _type  类型
         */
        _gotDateTimeList({_start, _end, _type}) {
          let resultDataList = new Array()
          for (let i = _start; i <= _end; i ++) {
            resultDataList.push(this._addZore(i) + this.data.dateDetails[_type])
          }
          return resultDataList
        },
        /**
         * 获取天数
         * @param {Number} _year  年份
         * @param {Number} _mouth  月份
         */
        _gotDayList(_year, _mouth) {
          let now = new Date(_year, _mouth, 0)
          const dayLength = now.getDate()
          let dayList = new Array()
          for(let i = 1; i <= dayLength; i++) {
            dayList.push(this._addZore(i) + '日')
          }
          return dayList
        },
        /**
         * 补零
         * @param {Number} _num  数值
         */
        _addZore(_num) {
          return _num <  10 ? '0' + _num : _num.toString()
        },
        /**
         * 回显时间
         * @param {Number} _showTimeValue  初始化时要显示的时间
         */
        _echoDateTime(_showTimeValue) {
          const rangeList = this.data.rangeList
          let rangeValue = new Array()
          const list = _showTimeValue.split(/[\-|\:|\s]/)
          list.map((el, index) => {
            rangeList[index].map((item, itemIndex) => {
              item.indexOf(el) !== -1 && rangeValue.push(itemIndex)
            })
          })
          this.setData({
            rangeValue
          })
        },
        /**
         * 点击确定时触发的回调函数
         * @param {Number} ev
         */
        selectChangeFn(ev) {
          const selectValues = ev.detail.value
          const rangeList = this.data.rangeList
          let dateTime = ''
          selectValues.map((el, index) => {
            dateTime += rangeList[index][el].substring(0, rangeList[index][el].length - 1)
            if(index == 0 || index == 1) {
              dateTime += '-'
            } else if (index == 3 || (index == 4 && index != selectValues.length - 1)) {
              dateTime += ':'
            } else if(index == 2 && index != selectValues.length -1){
              dateTime += ' '
            }
          })
          // ====触发父组件把值传递给父组件====
          this.triggerEvent('change', {value: dateTime})
        },
        /**
         *  当具体的一项的值发生改变时触发
         *  @param {Number} ev
         */
        selectColumnChangeFn(ev) {
          const { column, value } = ev.detail
          let { rangeList, rangeValue } = this.data
          let selectValue = Number(rangeList[column][value]
            .substring(0, rangeList[column][value].length - 1))
          if (column === 1) { // 改变月份 
            const currentYear = Number(rangeList[0][rangeValue[0]]
              .substring(0, rangeList[0][rangeValue[0]].length - 1))
            const dayList = this._gotDayList(currentYear, selectValue)
            rangeList[column + 1] = dayList
          }
          this.setData({
            rangeList
          })
        }
      }
    })
    
    // 自定义异常
    function CommonException(errMsg, code){
      this.errMsg = errMsg
      this.code = code
    }
    
    // =====格式化日期===
    const formatTime = date => {
      const year = date.getFullYear()
      const month = date.getMonth() + 1
      const day = date.getDate()
      const hour = date.getHours()
      const minute = date.getMinutes()
      const second = date.getSeconds()
    
      return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(':')
    }
    
    const formatNumber = n => {
      n = n.toString()
      return n[1] ? n : '0' + n
    }
    
    

    json文件中的代码:

    {
      "component": true,
      "usingComponents": {}
    }
    

    wxml文件中的代码:

    <!--components/date-time-picker/index.wxml-->
    <picker mode="multiSelector" range="{{rangeList}}" value="{{rangeValue}}"
      bindchange="selectChangeFn" bindcolumnchange="selectColumnChangeFn">
      <slot></slot>
    </picker>
     
    

    wxss文件中就没有样式了,代码就这么多,也很简单,如果哪位大佬觉得我写的代码有问题的话还望多多指正,谢谢!

    展开全文
  • 本课件充分展示了关于年月日的相关知识点,帮助老师更好的完成本科的教学,是很好的教学辅助工具。...该文档为一天的时间年月日PPT课件,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看看
  • jQuery多功能年月日星期时间特效插件下载
  • 微信小程序 年月日时分组件 时间选择

    万次阅读 多人点赞 2018-12-27 15:08:15
    最近做自己的项目时,需要用到年月日时分的日期选择器,找了官网发现没有这种的,于是就只能自己写啦。 使用微信小程序原生packer实现多列选择器:mode = multiSelector 废话不多,效果看图 文末附上下载链接 后续...

    最近做自己的项目时,需要用到年月日时分的日期选择器,找了官网发现没有这种的,于是就只能自己写啦。

    使用微信小程序原生packer实现 多列选择器:mode = multiSelector

    废话不多,效果看图 文末附上下载链接 后续会不断优化控件 支持更多操作 用到的朋友给个star小星星吧~

    2019-01-28更新 添加可以指定默认日期 修复了一些BUG git上已上传最新代码 有问题可以给我留言 谢谢

    2019-02-27 添加是否允许点击属性disabled true不允许点击 false允许点击 默认false

    2019-04-08 修复不添加data属性 不显示默认日期BUG

    添加开始日期startDate 结束日期endDate 如果都没添加 默认显示3年, 如果只添加startDate 则结束时间为2099 如果只添加endData则开始日期为1900  目前只支持限制年份,后续会添加所有限制

    2019-04-09 修复年份显示BUG

    2019-04-10 添加placeholder属性 提示文字 可以默认不显示日期 添加后初始化onPickerChange 不返回数据 

    2019-08-07 修改开始日期startDate 结束日期endDate 添加所有限制 之前只能限制年份 现在做到全支持 格式为2019-02-02 15:33(务必遵守)代码写的有点复杂 后期再优化吧 有BUG请尽快联系我修改,防止老年痴呆复发。。。谢谢

    2019-11-20 修改页面不渲染BUG

    2020-08-28 修改ios异常bug 原因ios转换日期 不识别'2019-01-01 12:37' 只识别'2019/01/01 12:37' 现已做修改 把传入日期'-'改为'/' (之前代码已做'-'改为'/'转换处理 但不知道怎么的 会丢失某一列数据 原因不明 未复现 再出现请联系我) 

    感谢各位小哥哥 小姐姐的小星星 谢谢大家

     

    实现思路:除了天数会跟随月份改变外,其余都为固定值 

    代码如下

    pickerYMDHM.js文件

    // components/pickerYMDHM/pickerYMDHM.js
    Component({
      /**
       * 组件的属性列表
       */
      properties: {
        date: {            // 属性名
          type: null,     // 类型(必填),目前接受的类型包括:String, Number, Boolean, Object, Array, null(表示任意类型)
          value: null     // 属性初始值(可选),如果未指定则会根据类型选择一个
        },
        startDate: {
          type: null,     // 类型(必填),目前接受的类型包括:String, Number, Boolean, Object, Array, null(表示任意类型)
          value: null     // 属性初始值(可选),如果未指定则会根据类型选择一个
        },
        endDate: {
          type: null,     // 类型(必填),目前接受的类型包括:String, Number, Boolean, Object, Array, null(表示任意类型)
          value: null     // 属性初始值(可选),如果未指定则会根据类型选择一个
        },
        disabled: {
          type: null,     // 类型(必填),目前接受的类型包括:String, Number, Boolean, Object, Array, null(表示任意类型)
          value: false     // 属性初始值(可选),如果未指定则会根据类型选择一个
        },
        placeholder: {
          type: null,     // 类型(必填),目前接受的类型包括:String, Number, Boolean, Object, Array, null(表示任意类型)
          value: null     // 属性初始值(可选),如果未指定则会根据类型选择一个
        }
      },
    
      /**
       * 组件的初始数据
       */
      data: {
        pickerArray: [],//日期控件数据list
        pickerIndex: [],//日期控件选择的index
        chooseIndex: [],//日期控件确认选择的index
        chooseArray: [],//日期控件确认选择后的list
        stDate: '',//开始日期
        enDate: ''//结束日期
      },
    
      /**
       * 组件的方法列表
       */
      methods: {
        _onInit() {
          let date = new Date();
          if (this.data.date != null) {
            let str = this.data.date;
            str = str.replace(/-/g, '/');
            date = new Date(str);
          }
          let pickerArray = this.data.pickerArray;
          // console.log(date.getFullYear());
          //默认选择3年内
          let year = [];
          let month = [];
          let day = [];
          let time = [];
          let division = [];
          let startDate = '';
          let endDate = ''
          let tpData = {};
          if (this.data.startDate != null && this.data.endDate == null) {
            //如果存在开始时间,则默认设置结束时间为2099
            startDate = this._getDefaultDate(this.data.startDate);
            endDate = this._getDefaultDate("2099-12-31 23:59");
            tpData = this._getModify(date, startDate, endDate);
          }
          if (this.data.endDate != null && this.data.startDate == null) {
            //如果存在结束时间,不存在开始时间 则默认设置开始时间为1900
            startDate = this._getDefaultDate("1900-01-01 00:00");
            endDate = this._getDefaultDate(this.data.endDate);
            tpData = this._getModify(date, startDate, endDate);
          }
          if (this.data.endDate != null && this.data.startDate != null) {
            startDate = this._getDefaultDate(this.data.startDate);
            endDate = this._getDefaultDate(this.data.endDate);
            tpData = this._getModify(date, startDate, endDate);
          }
          // console.log(year);
          if (this.data.startDate == null && this.data.endDate == null) {
            startDate = this._getDefaultDate("1901-01-01 00:00");
            endDate = this._getDefaultDate("2099-12-31 23:59");
            tpData = this._getModify(date, startDate, endDate);
          }
          
          if (date > endDate || date < startDate) {
            this.setData({
              placeholder: "默认日期不在时间范围内"
            })
            return;
          }
          // console.log(division);
          pickerArray[0] = tpData.year;
          pickerArray[1] = tpData.month;
          pickerArray[2] = tpData.day;
          pickerArray[3] = tpData.time;
          pickerArray[4] = tpData.division;
          let mdate = {
            date: date,
            year: date.getFullYear() + '',
            month: date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1 + '',
            day: date.getDate() < 10 ? '0' + date.getDate() : date.getDate() + '',
            time: date.getHours() < 10 ? '0' + date.getHours() : date.getHours() + '',
            division: date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes() + ''
          }
          mdate.placeholder = mdate.year + '-' + mdate.month + '-' + mdate.day + ' ' + mdate.time + ':' + mdate.division;
          this.setData({
            pickerArray,
            pickerIndex: tpData.index,
            chooseIndex: tpData.index,
            chooseArray: pickerArray,
            placeholder: this.data.placeholder != null ? this.data.placeholder : mdate.placeholder,
            stDate: startDate,
            enDate: endDate
          })
          // console.log(date);
          //设置placeholder属性后 初始化不返回日期
          if (this.data.placeholder == null){
            this.triggerEvent('onPickerChange', mdate);
          }
          // console.log(this.data.pickerArray);
          // console.log(this._getNumOfDays(2018, 10));
        },
        /**
         * 
         */
        _getDefaultDate(date) {
          date = date.replace(/-/g, '/');
          return new Date(date);
        },
        /**
    	 * 
    	 * 获取开始日期 结束日期 中间日期
    	 * @param {date} newDate 默认日期
    	 * @param {date} startDate 设置开始日期
    	 * @param {date} stopDate 设置结束日期
    	 * @returns data 包含年月日时分数组
    	 */
        _getModify(newDate, startDate, stopDate) {
          let data = {
            year: [],
            month: [],
            day: [],
            time: [],
            division: [],
            index:[0,0,0,0,0]
          }
          let nYear = newDate.getFullYear();
          let nMonth = newDate.getMonth() + 1;
          let nDay = newDate.getDate();
          let nHours = newDate.getHours();
          let nMinutes = newDate.getMinutes();
    
          let tYear = startDate.getFullYear();
          let tMonth = startDate.getMonth() + 1;
          let tDay = startDate.getDate();
          let tHours = startDate.getHours();
          let tMinutes = startDate.getMinutes();
    
          let pYear = stopDate.getFullYear();
          let pMonth = stopDate.getMonth() + 1;
          let pDay = stopDate.getDate();
          let pHours = stopDate.getHours();
          let pMinutes = stopDate.getMinutes();
          for (let i = tYear; i <= pYear; i++) {
            data.year.push({ id: i, name: i + "年" });
          }
          data.index[0] = nYear - tYear;
          //判断年份是否相同 相同则继续
          if (nYear == tYear){
            //判断结束年份 赋值月份 如果结束年份相同则把结束月份 一并赋值
            if (nYear == pYear){
              for (let i = tMonth; i <= pMonth; i++) {
                data.month.push({ id: i, name: i + "月" });
              }
              data.index[1] = nMonth - tMonth < 0 ? 0 : nMonth - tMonth;
    
              if (nMonth == tMonth){
                if (nMonth == pMonth){
                  for (let i = tDay; i <= pDay; i++) {
                    data.day.push({ id: i, name: i + "日" });
                  }
                  data.index[2] = nDay - tDay < 0 ? 0 : nDay - tDay;
    
                  if (nDay == tDay){
                    if (nDay == pDay){
                      for (let i = tHours; i <= pHours; i++) {
                        if (i < 10) {
                          data.time.push({ id: i, name: "0" + i + "时" });
                        } else {
                          data.time.push({ id: i, name: i + "时" });
                        }
                      }
                      
                      data.index[3] = nHours - tHours < 0 ? 0 : nHours - tHours;
    
                      if (nHours == tHours){
                        if (nHours == pHours){
                          for (let i = tMinutes; i <= pMinutes; i++) {
                            if (i < 10) {
                              data.division.push({ id: i, name: "0" + i + "分" });
                            } else {
                              data.division.push({ id: i, name: i + "分" });
                            }
                          }
                          data.index[4] = nMinutes - tMinutes < 0 ? 0 : nMinutes - tMinutes;
                        } else {
                          for (let i = tMinutes; i <= 59; i++) {
                            if (i < 10) {
                              data.division.push({ id: i, name: "0" + i + "分" });
                            } else {
                              data.division.push({ id: i, name: i + "分" });
                            }
                          }
                          data.index[4] = nMinutes - tMinutes < 0 ? 0 : nMinutes - tMinutes;
                        }
                      } else {
                        if (nHours == pHours){
                          for (let i = 0; i <= pMinutes; i++) {
                            if (i < 10) {
                              data.division.push({ id: i, name: "0" + i + "分" });
                            } else {
                              data.division.push({ id: i, name: i + "分" });
                            }
                          }
                          data.index[4] = nMinutes;
                        } else {
                          for (let i = 0; i <= 59; i++) {
                            if (i < 10) {
                              data.division.push({ id: i, name: "0" + i + "分" });
                            } else {
                              data.division.push({ id: i, name: i + "分" });
                            }
                          }
                          data.index[4] = nMinutes;
                        }
                      }
                    } else {
                      for (let i = tHours; i <= 23; i++) {
                        if (i < 10) {
                          data.time.push({ id: i, name: "0" + i + "时" });
                        } else {
                          data.time.push({ id: i, name: i + "时" });
                        }
                      }
                      
                      data.index[3] = nHours - tHours < 0 ? 0 : nHours - tHours;
                      if (nHours == tHours) {
                        for (let i = tMinutes; i <= 59; i++) {
                          if (i < 10) {
                            data.division.push({ id: i, name: "0" + i + "分" });
                          } else {
                            data.division.push({ id: i, name: i + "分" });
                          }
                        }
                        data.index[4] = nMinutes - tMinutes < 0 ? 0 : nMinutes - tMinutes;
                      } else {
                        for (let i = 0; i <= 59; i++) {
                          if (i < 10) {
                            data.division.push({ id: i, name: "0" + i + "分" });
                          } else {
                            data.division.push({ id: i, name: i + "分" });
                          }
                        }
                        data.index[4] = nMinutes;
                      }
                    }
                  } else {
                    if (nDay == pDay){
                      for (let i = 0; i <= pHours; i++) {
                        if (i < 10) {
                          data.time.push({ id: i, name: "0" + i + "时" });
                        } else {
                          data.time.push({ id: i, name: i + "时" });
                        }
                      }
                      data.index[3] = nHours;
                      if (nHours == pHours){
                        for (let i = 0; i <= pMinutes; i++) {
                          if (i < 10) {
                            data.division.push({ id: i, name: "0" + i + "分" });
                          } else {
                            data.division.push({ id: i, name: i + "分" });
                          }
                        }
                        data.index[4] = nMinutes;
                      } else {
                        for (let i = 0; i <= 59; i++) {
                          if (i < 10) {
                            data.division.push({ id: i, name: "0" + i + "分" });
                          } else {
                            data.division.push({ id: i, name: i + "分" });
                          }
                        }
                        data.index[4] = nMinutes;
                      }
                    } else {
                      for (let i = 0; i <= 23; i++) {
                        if (i < 10) {
                          data.time.push({ id: i, name: "0" + i + "时" });
                        } else {
                          data.time.push({ id: i, name: i + "时" });
                        }
                      }
    
                      data.index[3] = nHours;
                      // console.log(time);
                      for (let i = 0; i <= 59; i++) {
                        if (i < 10) {
                          data.division.push({ id: i, name: "0" + i + "分" });
                        } else {
                          data.division.push({ id: i, name: i + "分" });
                        }
                      }
                      data.index[4] = nMinutes;
                    }
                  }
                } else {
                  let dayNum = this._getNumOfDays(nYear, nMonth);
                  for (let i = tDay; i <= dayNum; i++) {
                    data.day.push({ id: i, name: i + "日" });
                  }
                  data.index[2] = nDay - tDay < 0 ? 0 : nDay - tDay;
                  if (nDay == tDay) {
                    for (let i = tHours; i <= 23; i++) {
                      if (i < 10) {
                        data.time.push({ id: i, name: "0" + i + "时" });
                      } else {
                        data.time.push({ id: i, name: i + "时" });
                      }
                    }
                    
                    data.index[3] = nHours - tHours < 0 ? 0 : nHours - tHours;
                    if (nHours == tHours) {
                      for (let i = tMinutes; i <= 59; i++) {
                        if (i < 10) {
                          data.division.push({ id: i, name: "0" + i + "分" });
                        } else {
                          data.division.push({ id: i, name: i + "分" });
                        }
                      }
                      data.index[4] = nMinutes - tMinutes < 0 ? 0 : nMinutes - tMinutes;
                    } else {
                      for (let i = 0; i <= 59; i++) {
                        if (i < 10) {
                          data.division.push({ id: i, name: "0" + i + "分" });
                        } else {
                          data.division.push({ id: i, name: i + "分" });
                        }
                      }
                      data.index[4] = nMinutes;
                    }
                  } else {
                    for (let i = 0; i <= 23; i++) {
                      if (i < 10) {
                        data.time.push({ id: i, name: "0" + i + "时" });
                      } else {
                        data.time.push({ id: i, name: i + "时" });
                      }
                    }
                    
                    data.index[3] = nHours;
                    // console.log(time);
                    for (let i = 0; i <= 59; i++) {
                      if (i < 10) {
                        data.division.push({ id: i, name: "0" + i + "分" });
                      } else {
                        data.division.push({ id: i, name: i + "分" });
                      }
                    }
                    data.index[4] = nMinutes;
                  }
                }
              } else {
                if (nMonth == pMonth){
                  for (let i = 1; i <= pDay; i++) {
                    data.day.push({ id: i, name: i + "日" });
                  }
                  data.index[2] = nDay - 1;
                  if (nDay == pDay){
                    for (let i = 0; i <= pHours; i++) {
                      if (i < 10) {
                        data.time.push({ id: i, name: "0" + i + "时" });
                      } else {
                        data.time.push({ id: i, name: i + "时" });
                      }
                    }
                    data.index[3] = nHours;
                    if (nHours == pHours){
                      for (let i = 0; i <= pMinutes; i++) {
                        if (i < 10) {
                          data.division.push({ id: i, name: "0" + i + "分" });
                        } else {
                          data.division.push({ id: i, name: i + "分" });
                        }
                      }
                      data.index[4] = nMinutes;
                    } else {
                      for (let i = 0; i <= 59; i++) {
                        if (i < 10) {
                          data.division.push({ id: i, name: "0" + i + "分" });
                        } else {
                          data.division.push({ id: i, name: i + "分" });
                        }
                      }
                      data.index[4] = nMinutes;
                    }
                  } else {
                    for (let i = 0; i <= 23; i++) {
                      if (i < 10) {
                        data.time.push({ id: i, name: "0" + i + "时" });
                      } else {
                        data.time.push({ id: i, name: i + "时" });
                      }
                    }
                    data.index[3] = nHours;
                    // console.log(time);
                    for (let i = 0; i <= 59; i++) {
                      if (i < 10) {
                        data.division.push({ id: i, name: "0" + i + "分" });
                      } else {
                        data.division.push({ id: i, name: i + "分" });
                      }
                    }
                    data.index[4] = nMinutes;
                  }
                } else {
                  let dayNum = this._getNumOfDays(nYear, nMonth);
                  for (let i = 1; i <= dayNum; i++) {
                    data.day.push({ id: i, name: i + "日" });
                  }
                  data.index[2] = nDay - 1;
                  for (let i = 0; i <= 23; i++) {
                    if (i < 10) {
                      data.time.push({ id: i, name: "0" + i + "时" });
                    } else {
                      data.time.push({ id: i, name: i + "时" });
                    }
                  }
    
                  data.index[3] = nHours;
                  // console.log(time);
                  for (let i = 0; i <= 59; i++) {
                    if (i < 10) {
                      data.division.push({ id: i, name: "0" + i + "分" });
                    } else {
                      data.division.push({ id: i, name: i + "分" });
                    }
                  }
                  data.index[4] = nMinutes;
                }
              } 
            } else {//只需要开始日期 因为结束年份不同 所以不会用到结束日期
              for (let i = tMonth; i <= 12; i++) {
                data.month.push({ id: i, name: i + "月" });
              }
              data.index[1] = nMonth - tMonth < 0 ? 0 : nMonth - tMonth;
              if (nMonth == tMonth){
                let dayNum = this._getNumOfDays(nYear, nMonth);
                for (let i = tDay; i <= dayNum; i++) {
                 data.day.push({ id: i, name: i + "日" });
                }
                data.index[2] = nDay - tDay < 0 ? 0 : nDay - tDay;
                if (nDay == tDay){
                  for (let i = tHours; i <= 23; i++) {
                    if (i < 10) {
                      data.time.push({ id: i, name: "0" + i + "时" });
                    } else {
                      data.time.push({ id: i, name: i + "时" });
                    }
                  }
                  
                  data.index[3] = nHours - tHours < 0 ? 0 : nHours - tHours;
                  if (nHours == tHours){
                    for (let i = tMinutes; i <= 59; i++) {
                      if (i < 10) {
                        data.division.push({ id: i, name: "0" + i + "分" });
                      } else {
                        data.division.push({ id: i, name: i + "分" });
                      }
                    }
                    data.index[4] = nMinutes - tMinutes < 0 ? 0 : nMinutes - tMinutes;
                  } else {
                    for (let i = 0; i <= 59; i++) {
                      if (i < 10) {
                        data.division.push({ id: i, name: "0" + i + "分" });
                      } else {
                        data.division.push({ id: i, name: i + "分" });
                      }
                    }
                    data.index[4] = nMinutes;
                  }
                } else {
                  for (let i = 0; i <= 23; i++) {
                    if (i < 10) {
                      data.time.push({ id: i, name: "0" + i + "时" });
                    } else {
                      data.time.push({ id: i, name: i + "时" });
                    }
                  }
                  
                  data.index[3] = nHours;
                  // console.log(time);
                  for (let i = 0; i <= 59; i++) {
                    if (i < 10) {
                      data.division.push({ id: i, name: "0" + i + "分" });
                    } else {
                      data.division.push({ id: i, name: i + "分" });
                    }
                  }
                  data.index[4] = nMinutes;
                }
              } else {
                let dayNum = this._getNumOfDays(nYear, nMonth);
                for (let i = 1; i <= dayNum; i++) {
                  data.day.push({ id: i, name: i + "日" });
                }
                data.index[2] = nDay - 1;
                for (let i = 0; i <= 23; i++) {
                  if (i < 10) {
                    data.time.push({ id: i, name: "0" + i + "时" });
                  } else {
                    data.time.push({ id: i, name: i + "时" });
                  }
                }
                
                data.index[3] = nHours;
                // console.log(time);
                for (let i = 0; i <= 59; i++) {
                  if (i < 10) {
                    data.division.push({ id: i, name: "0" + i + "分" });
                  } else {
                    data.division.push({ id: i, name: i + "分" });
                  }
                }
                data.index[4] = nMinutes;
              }
            }        
          } else {
            if (nYear == pYear) {
              for (let i = 1; i <= pMonth; i++) {
                data.month.push({ id: i, name: i + "月" });
              }
              data.index[1] = nMonth - 1;
              if (nMonth == pMonth){
                for (let i = 1; i <= pDay; i++) {
                  data.day.push({ id: i, name: i + "日" });
                }
                data.index[2] = nDay - 1;
                if (nDay == pDay){
                  for (let i = 0; i <= pHours; i++) {
                    if (i < 10) {
                      data.time.push({ id: i, name: "0" + i + "时" });
                    } else {
                      data.time.push({ id: i, name: i + "时" });
                    }
                  }
                  data.index[3] = nHours;
                  if (nHours == pHours){
                    for (let i = 0; i <= pMinutes; i++) {
                      if (i < 10) {
                        data.division.push({ id: i, name: "0" + i + "分" });
                      } else {
                        data.division.push({ id: i, name: i + "分" });
                      }
                    }
                    data.index[4] = nMinutes;
                  } else {
                    for (let i = 0; i <= 59; i++) {
                      if (i < 10) {
                        data.division.push({ id: i, name: "0" + i + "分" });
                      } else {
                        data.division.push({ id: i, name: i + "分" });
                      }
                    }
                    data.index[4] = nMinutes;
                  }
                } else {
                  for (let i = 0; i <= 23; i++) {
                    if (i < 10) {
                      data.time.push({ id: i, name: "0" + i + "时" });
                    } else {
                      data.time.push({ id: i, name: i + "时" });
                    }
                  }
                
                  data.index[3] = nHours;
                  // console.log(time);
                  for (let i = 0; i <= 59; i++) {
                    if (i < 10) {
                      data.division.push({ id: i, name: "0" + i + "分" });
                    } else {
                      data.division.push({ id: i, name: i + "分" });
                    }
                  }
                  data.index[4] = nMinutes;
                }
              } else {
                let dayNum = this._getNumOfDays(nYear, nMonth);
                for (let i = 1; i <= dayNum; i++) {
                  data.day.push({ id: i, name: i + "日" });
                }
                data.index[2] = nDay - 1;
                for (let i = 0; i <= 23; i++) {
                  if (i < 10) {
                    data.time.push({ id: i, name: "0" + i + "时" });
                  } else {
                    data.time.push({ id: i, name: i + "时" });
                  }
                }
              
                data.index[3] = nHours;
                // console.log(time);
                for (let i = 0; i <= 59; i++) {
                  if (i < 10) {
                    data.division.push({ id: i, name: "0" + i + "分" });
                  } else {
                    data.division.push({ id: i, name: i + "分" });
                  }
                }
                data.index[4] = nMinutes;
              }
            } else {
              for (let i = 1; i <= 12; i++) {
                data.month.push({ id: i, name: i + "月" });
              }
              data.index[1] = nMonth - 1;
              let dayNum = this._getNumOfDays(nYear, nMonth);
              for (let i = 1; i <= dayNum; i++) {
                data.day.push({ id: i, name: i + "日" });
              }
              data.index[2] = nDay - 1;
              for (let i = 0; i <= 23; i++) {
                if (i < 10) {
                  data.time.push({ id: i, name: "0" + i + "时" });
                } else {
                  data.time.push({ id: i, name: i + "时" });
                }
              }
              
              data.index[3] = nHours;
              // console.log(time);
              for (let i = 0; i <= 59; i++) {
                if (i < 10) {
                  data.division.push({ id: i, name: "0" + i + "分" });
                } else {
                  data.division.push({ id: i, name: i + "分" });
                }
              }
              data.index[4] = nMinutes;
            }
          }
          return data
        },
        /**
    	 * 
    	 * 获取本月天数
    	 * @param {number} year 
    	 * @param {number} month 
    	 * @param {number} [day=0] 0为本月0最后一天的
    	 * @returns number 1-31
    	 */
        _getNumOfDays(year, month, day = 0) {
          return new Date(year, month, day).getDate()
        },
        pickerChange: function (e) {
          // console.log('picker发送选择改变,携带值为', e.detail.value)
          let indexArr = e.detail.value;
          const year = this.data.pickerArray[0][indexArr[0]].id;
          const month = this.data.pickerArray[1][indexArr[1]].id;
          const day = this.data.pickerArray[2][indexArr[2]].id;
          const time = this.data.pickerArray[3][indexArr[3]].id;
          const division = this.data.pickerArray[4][indexArr[4]].id;
          let date = {
            date: new Date(year + '/' + month + '/' + day + ' ' + time + ':' + division),
            year: year + '',
            month: month < 10 ? '0' + month : month + '',
            day: day < 10 ? '0' + day : day + '',
            time: time < 10 ? '0' + time : time + '',
            division: division < 10 ? '0' + division : division + ''
          }
          date.dateString = date.year + '-' + date.month + '-' + date.day + ' ' + date.time + ':' + date.division;
          // console.log(date);
          this.setData({
            chooseIndex: e.detail.value,
            chooseArray: this.data.pickerArray,
            placeholder: date.dateString
          })
          this.triggerEvent('onPickerChange', date);
        },
        pickerColumnChange: function (e) {
          // console.log('修改的列为', e.detail.column, ',值为', e.detail.value);
          let data = {
            pickerArray: this.data.pickerArray,
            pickerIndex: this.data.pickerIndex
          };
          //首先获取 修改后的日期 然后重新赋值列表数据
          data.pickerIndex[e.detail.column] = e.detail.value;
          let cYear = data.pickerArray[0][data.pickerIndex[0]].id;
          let cMonth = data.pickerArray[1][data.pickerIndex[1]].id;
          let cDay = data.pickerArray[2][data.pickerIndex[2]].id;
          let cTime = data.pickerArray[3][data.pickerIndex[3]].id;
          let cDivision = data.pickerArray[4][data.pickerIndex[4]].id;
          //需要先判断修改后的日期是否是正确的天数 不正确会导致日期错乱等未知情况
          let daysn = this._getNumOfDays(cYear, cMonth);
          //不正确 重新赋值
          if (cDay > daysn){
            cDay = daysn;
          }
          
          // console.log(cYear + '-' + cMonth + '-' + cDay + ' ' + cTime + ':' + cDivision);
          let newDate = this._getDefaultDate(cYear + '/' + cMonth + '/' + cDay + ' ' + cTime + ':' + cDivision);
          //判断修改后的日期是否在限制范围内 不在则重新赋值
          if (newDate > this.data.enDate) {
            newDate = this.data.enDate;
          }
          if (newDate < this.data.stDate){
            newDate = this.data.stDate;
          }
          let tpData = this._getModify(newDate, this.data.stDate, this.data.enDate);
          data.pickerArray[0] = tpData.year;
          data.pickerArray[1] = tpData.month;
          data.pickerArray[2] = tpData.day;
          data.pickerArray[3] = tpData.time;
          data.pickerArray[4] = tpData.division;
          data.pickerIndex = tpData.index;
          
          for (let i = 0; i <=4; i++) {
            if (data.pickerArray[i].length - 1 < data.pickerIndex[i]) {
              data.pickerIndex[i] = data.pickerArray[i].length - 1;
            }
          }
          this.setData(data);
        },
        pickerCancel: function (e) {
          // console.log("取消");
          this.setData({
            pickerIndex: this.data.chooseIndex,
            pickerArray: this.data.chooseArray
          })
        },
      },
      // 以下是旧式的定义方式,可以保持对 <2.2.3 版本基础库的兼容
      attached() {
        // 在组件实例进入页面节点树时执行
        // 在组件实例进入页面节点树时执行
        // this._onInit();
      },
      ready() {
        // console.log('进入ready外层节点=', this.data.date);
        this._onInit();
      },
      // 以下为新方法 >=2.2.3
      lifetimes: {
        attached() {
          // 在组件实例进入页面节点树时执行
          // this._onInit();
        },
        detached() {
          // 在组件实例被从页面节点树移除时执行
        },
        ready() {
          // console.log('进入ready节点=', this.data.date);
          this._onInit();
        }
      }
    })
    

    其中年份默认开始时间为1901-01-01 00:00 结束时间 2099-12-31 23:59 如果需要修改可以添加startDate开始年份 endDate结束年份 目前可以限制所有条件

    pickerYMDHM.wxml文件

    <!--components/pickerYMDHM/pickerYMDHM.wxml-->
    <view>
      <picker disabled="{{disabled}}" mode="multiSelector" bindchange="pickerChange" bindcolumnchange="pickerColumnChange" bindcancel ="pickerCancel" value="{{pickerIndex}}" range="{{pickerArray}}" range-key="{{'name'}}">
        <view style='font-size:.7rem;background-color: #F8F8FF;line-height: 40px;padding:0px 10px;width:150px;text-align:center'>
          {{placeholder}}
        </view>
      </picker>
    </view>

    这个只是随便设置了个样式,如果需要修改,可按需求更改。

    另外由于封装成了组件 所以json文件里需要设置component为true

    pickerYMDHM.json文件

    {
    
    "component": true,
    
    "usingComponents": {}
    
    }

    使用方法,在需要使用页面的json文件里添加组件 "pickerYMDHM": "/components/pickerYMDHM/pickerYMDHM" 类似如下

    {
      "usingComponents": {
        "pickerYMDHM": "/components/pickerYMDHM/pickerYMDHM"
      },
      "navigationBarTitleText": "详情"
    }

    对应wxml使用自定义标签pickerYMDHM

    <!--index.wxml-->
    <view class="container">
      <pickerYMDHM placeholder = "{{placeholder}}" date = "{{date}}" disabled = "{{disabled}}" bind:onPickerChange="onPickerChange" startDate="{{startDate}}" endDate="{{endDate}}">
      </pickerYMDHM>
    </view>
    
    //index.js
    //获取应用实例
    const app = getApp()
    
    Page({
      data: {
        date:'2019-01-01 13:37',
        disabled:false,//设置是否能点击 false可以 true不能点击
        startDate: '2019-01-01 12:37',
        endDate: '2019-03-12 12:38',
        placeholder:'请选择时间'
      },
      onLoad: function () {
    
      },
      /**
     * 日历控件绑定函数 
     * 点击日期返回
     */
      onPickerChange: function (e) {
        console.log(e.detail);
        this.setData({
          date: e.detail.dateString
        })
      },
    })
    

    其中bind:onPickerChange="onPickerChange"为日期控件点击确定后的回调函数 在对应js里添加

      /**
     * 日历控件绑定函数 
     * 点击日期返回
     */
      onPickerChange: function (e) {
        console.log(e.detail);
        this.setData({
          date: e.detail.dateString
        })
      },

    返回的数据

    下载链接:https://github.com/MuYuAuspicious/pickerYMDHM

    展开全文
  • 注:例子中出现的jquery-ui-1.7.3是jquery的插件,包含了日期控件的国际化和一些动画特效,下载地址:http://jqueryui.com/$('#dyStartDateTime').datetimepicker({showSecond: true,changeMonth: true,changeYear: ...

    注:例子中出现的jquery-ui-1.7.3是jquery的插件,包含了日期控件的国际化和一些动画特效,下载地址:http://jqueryui.com/

    $('#dyStartDateTime').datetimepicker({

    showSecond: true,

    changeMonth: true,

    changeYear: true,

    timeFormat: 'hh:mm:ss',

    dateFormat: 'yy-mm-dd'

    });

    $('#dyEndDateTime').datetimepicker({

    showSecond: true,

    changeMonth: true,

    changeYear: true,

    timeFormat: 'hh:mm:ss',

    dateFormat: 'yy-mm-dd'

    });

    0

    2

    分享到:

    18e900b8666ce6f233d25ec02f95ee59.png

    72dd548719f0ace4d5f9bca64e1d7715.png

    2012-01-20 16:50

    浏览 20455

    评论

    2 楼

    tjmljw

    2012-06-27

    pengzhaocheng16 写道

    这个不是最新的吧,少个js文件

    也许是插件jquery-ui-1.7.3不完整,重新下载后再尝试一次吧,若还不行请再联系我。下载地址:http://jqueryui.com/ 。

    这个不是最新的吧,少个js文件

    展开全文
  • 使用js动态显示当前时间(包括年月日星期以及时分秒),本人已经调试成功了,大家快点来下载吧!就一分,真心值的
  • 在网上下载的一个时间选择器,挺简洁好用的,所以进行了改造,加了分类小标题和秒的选择还有代理,希望能帮的上对时间精确度有特殊要求的同胞,直接拷代码上了.h文件#import @protocol DatePickViewDelegate-(void)...

    在网上下载的一个时间选择器,挺简洁好用的,所以进行了改造,加了分类小标题和秒的选择还有代理,希望能帮的上对时间精确度有特殊要求的同胞,直接拷代码上了

    .h文件

    #import

    @protocol DatePickViewDelegate

    -(void)timeIsAhoice:(NSArray *)arrs;

    - (void)didClickFinishBtn:(NSArray *)array;

    @end

    @interface DatePickerView : UIView

    @property(nonatomic,weak)iddelagate;

    @property(nonatomic,strong)UIPickerView *DatePcikView;

    @property(nonatomic,assign)int startTimeYear;

    @end

    .m文件

    #import "DatePickerView.h"@interface DatePickerView() {

    NSArray *_tempArray;

    }

    @property(nonatomic,strong)NSMutableArray *dateStrs;

    @property(nonatomic,strong)NSArray *currentTimeArrs;

    @property(nonatomic,assign)int tempYear;

    @property(nonatomic,assign)int tempMouth;

    @property(nonatomic,strong)UIButton *cancelbut;

    @property (nonatomic , strong) UIView *viewCell;

    @end

    @implementation DatePickerView

    -(void)scrollViewDidScroll:(UIScrollView *)scrollView{

    NSLog(@"xxxxxx");

    }

    - (UIView *)viewCell {

    if (!_viewCell) {

    _viewCell = [UIView new];

    NSArray *temp = @[@"年",@"月",@"日",@"时",@"分",@"秒"];

    CGFloat lblWidth = (SCREEN_WIDTH-32)/temp.count;

    for (int i = 0; i

    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(i*lblWidth, 0, lblWidth, 15)];

    label.text = temp[i];

    label.font = [UIFont systemFontOfSize:12];

    label.textColor = [UIColor colorFromHex:@"999999"];

    label.textAlignment = NSTextAlignmentCenter;

    [_viewCell addSubview:label];

    }

    }

    return _viewCell;

    }

    -(UIButton *)cancelbut{

    if (!_cancelbut) {

    _cancelbut = [UIButton new];

    [_cancelbut setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];

    [_cancelbut setTitle:@"确定" forState:UIControlStateNormal];

    [_cancelbut addTarget:self action:@selector(cancelbutClick) forControlEvents:UIControlEventTouchUpInside];

    }

    return _cancelbut;

    }

    -(void)cancelbutClick{

    if ([self.delagate respondsToSelector:@selector(didClickFinishBtn:)]) {

    [self.delagate didClickFinishBtn:_tempArray];

    }

    }

    -(UIPickerView *)DatePcikView{

    if (!_DatePcikView) {

    _DatePcikView = [UIPickerView new];

    _DatePcikView.delegate = self;

    _DatePcikView.dataSource = self;

    }

    return _DatePcikView;

    }

    - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{

    return self.dateStrs.count;

    }

    - (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{

    return [self.dateStrs[component] count];

    }

    - (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view{

    UILabel *myView = nil;

    myView = [[UILabel alloc] initWithFrame:CGRectMake(0.0, 0.0, 100, 30)];

    myView.textAlignment = NSTextAlignmentCenter;

    myView.text = self.dateStrs[component][row];

    myView.font = [UIFont systemFontOfSize:14];

    myView.backgroundColor = [UIColor clearColor];

    return myView;

    }

    -(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{

    if (component == 0) {

    NSArray *arrs = [self monthOfDaysByMonthNumber:self.tempMouth andByYear:[self.dateStrs[0][row] intValue]];

    self.tempYear = [self.dateStrs[0][row] intValue];

    [self.dateStrs replaceObjectAtIndex:2 withObject:arrs];

    [pickerView reloadAllComponents];

    }else if (component == 1) {

    NSArray *arrs = [self monthOfDaysByMonthNumber:[self.dateStrs[1][row] intValue] andByYear:self.tempYear];

    self.tempMouth = [self.dateStrs[1][row] intValue];

    [self.dateStrs replaceObjectAtIndex:2 withObject:arrs];

    [pickerView reloadAllComponents];

    }

    NSMutableArray *tempArr = [NSMutableArray array];

    for (int i = 0; i < self.dateStrs.count; i++) {

    [tempArr addObject:self.dateStrs[i][[pickerView selectedRowInComponent:i]]];

    }

    _tempArray = tempArr;

    if ([self.delagate respondsToSelector:@selector(timeIsAhoice:)]) {

    [self.delagate timeIsAhoice:tempArr];

    }

    }

    -(void)layoutSubviews{

    [super layoutSubviews];

    _cancelbut.frame = CGRectMake(self.frame.size.width-60, 0, 50, 40);

    _DatePcikView.frame = CGRectMake(16, 52, self.frame.size.width-32, self.frame.size.height-52);

    _viewCell.frame = CGRectMake(16, 40, SCREEN_WIDTH-32, 12);

    [_DatePcikView selectRow:[self.currentTimeArrs[0] intValue] - 1990 inComponent:0 animated:NO];

    self.tempYear = [self.currentTimeArrs[0] intValue];

    [_DatePcikView selectRow:[self.currentTimeArrs[1]intValue] - 1 inComponent:1 animated:NO];

    self.tempMouth = [self.currentTimeArrs [1] intValue];

    [_DatePcikView selectRow:[self.currentTimeArrs[2]intValue] - 1 inComponent:2 animated:NO];

    [_DatePcikView selectRow:[self.currentTimeArrs[3]intValue] inComponent:3 animated:NO];

    [_DatePcikView selectRow:[self.currentTimeArrs[4]intValue] inComponent:4 animated:NO];

    [_DatePcikView selectRow:[self.currentTimeArrs[5]intValue] inComponent:5 animated:NO];

    _tempArray = @[self.currentTimeArrs[0],self.currentTimeArrs[1],self.currentTimeArrs[2],self.currentTimeArrs[3],self.currentTimeArrs[4],self.currentTimeArrs[5]];

    }

    - (instancetype)initWithFrame:(CGRect)frame

    {

    self = [super initWithFrame:frame];

    if (self) {

    [self Getdates];

    [self addSubview:self.DatePcikView];

    [self addSubview:self.cancelbut];

    [self addSubview:self.viewCell];

    }

    return self;

    }

    -(void)Getdates{

    self.dateStrs = [NSMutableArray array];

    self.currentTimeArrs =[self getCurrentTime];

    for (int i = 0; i < self.currentTimeArrs.count; i++) {

    NSMutableArray *tempArrs = [NSMutableArray array];

    switch (i) {

    case 0:

    {

    for (int j = 1990; j < 2030; j++) {

    [tempArrs addObject:[NSString stringWithFormat:@"%d",j]];

    }

    [self.dateStrs addObject:tempArrs ];

    }

    break;

    case 1:

    {

    for (int j = 1; j < 13; j++) {

    [tempArrs addObject:[NSString stringWithFormat:@"%02d",j]];

    }

    [self.dateStrs addObject:tempArrs];

    }

    break;

    case 2:

    {

    tempArrs = [NSMutableArray arrayWithArray:[self monthOfDaysByMonthNumber:[self.currentTimeArrs[1] intValue] andByYear:[self.currentTimeArrs[0] intValue]]];

    [_dateStrs addObject:tempArrs];

    }

    break;

    case 3:

    {

    for (int j = 0; j < 24; j++) {

    [tempArrs addObject:[NSString stringWithFormat:@"%02d",j]];

    }

    [self.dateStrs addObject:tempArrs];

    }

    break;

    case 4:

    {

    for (int j = 0; j < 60; j++) {

    [tempArrs addObject:[NSString stringWithFormat:@"%02d",j]];

    }

    [self.dateStrs addObject:tempArrs];

    }

    break;

    case 5:

    {

    for (int j = 0; j < 60; j++) {

    [tempArrs addObject:[NSString stringWithFormat:@"%02d",j]];

    }

    [self.dateStrs addObject:tempArrs];

    }

    break;

    }

    }

    }

    -(NSArray *)getCurrentTime{

    NSDate *  senddate=[NSDate date];

    NSDateFormatter  *dateformatterDay=[[NSDateFormatter alloc] init];

    [dateformatterDay setDateFormat:@"YYYY-MM-dd-HH-mm-ss"];

    NSString *  locationStringDay=[dateformatterDay stringFromDate:senddate];

    return [locationStringDay componentsSeparatedByString:@"-"];

    }

    -(NSArray *)monthOfDaysByMonthNumber:(int)monthNumber andByYear:(int)year{

    NSMutableArray *daysArr = [NSMutableArray array];

    int j = 0;

    switch (monthNumber) {

    case 1:case 3:case 5:case 7:case 8:case 10:case 12:

    {

    j = 31;

    }

    break;

    case 2:

    {

    if((year%4 == 0 && year%100 != 0)|| year%400 == 0){

    j = 29;

    }else{

    j = 28;

    }

    }

    break;

    default:

    {

    j = 30;

    }

    break;

    }

    for (int index = 1; index <= j; index ++) {

    [daysArr addObject:[NSString stringWithFormat:@"%d",index]];

    }

    return daysArr;

    }

    @end

    在controller中的调用,添加代理

    // 实现代理方法

    - (void)didClickFinishBtn:(NSArray *)array {

    // 点击确定按钮返回时间,数组,六个元素,年月日时分秒

    }

    // 初始化

    - (DatePickerView *)dateView {

    if (!_dateView) {

    _dateView = [[DatePickerView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 200)];

    _dateView.delagate = self;

    _dateView.backgroundColor = [UIColor whiteColor];

    }

    return _dateView;

    }

    使用

    _textField.inputView = self.dateView;

    展开全文
  • 选择年月日的插件

    2018-09-07 11:08:23
    首先需要node环境,在控制台下载所需要的框架和插件: npm install bootstrap@3 //下载bootstrap-3...npm install bootstrap-datetimepicker //下载时间控件(包含年、月、时间) 注意此控件需要jQuery 1.9...
  • moment.js 前端处理时间的神器:处理年月日小时分钟秒数(YYYYMMDDHHmmss),获取任一时间段的日期 安装:可以直接下载引用,也可以使用npm或Yarn下载 npm install moment --save # npm yarn add moment # Yarn ...
  • 日期选择插件是一个配置灵活的插件,你可以定义它的展示方式,包括日期格式、语言、限制选择日期范围、添加相关按钮以及其它导航等文档和下载地址:4、JQuery下载地址:下面先看效果图:引入js文件:1、默认的效果:...
  • 和 layer 一样,你可以在 ... 在 layui 模块中使用下载 layui 后,引入layui.css和layui.js即可通过layui.use('laydate', callback)加载模块后,再调用方法2. 作为独立组件使用去 layDate 独立版本官网下载组件包...
  • [b]注:例子中出现的jquery-ui-1.7.3是jquery的插件,包含了日期控件的国际化和一些动画特效[/b],下载地址:[url]http://jqueryui.com/[/url] [code="javascript"] $('#...
  • bootstrap-datetimepicker实现年月日,时分秒的选择。 参考链接:http://www.bootcss.com/p/bootstrap-datetimepicker/ 1、官网以及很详细的说明了如何使用,这里结合一下自己的使用来写下。 下载...
  • 使用方法:(1)下载picker_datetime.js 与 picker_datetime.wxml文件到本地(2)在需要用到该选择器的wxml文件中,在底部引入picker_datetime.wxml&lt;include src="../tools/wxml/picker_datetime.wxml&...
  • 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权...使用python脚本按照年月日生成多级目录,创建的目录可以将系统生成的日志文件放入其中,方便查阅,代码如下: #!/usr/bin/env python #codi
  • 苹果iPhone手机上虽然没有系统自带的便签app,但是我们可以去下载安装使用第三方的桌面便签软件。好用的第三方便签软件,小编向大家推荐敬业签。因为它集记事和提醒功能为一体,用户在记录的同时,就可以对记事内容...
  • 1、官网以及很详细的说明了如何使用,这里结合一下...下载解压缩包以后,可以看到有两个实例,可以打开看看,分别是sample in bootstrap v2、sample in bootstrap v3。 2、sample in bootstrap v2实例的代码如下...
  • 参考链接:...下载解压缩包以后,可以看到有两个实例,可以打开看看,分别是sample in bootstrap v2、sample in bootstrap v3。2、sample in bootstrap v2实例的代码如下所示。 1 ...
  • 您可以预览交互,验证用户体验并对设计进行迭代,从而节省开发时间。您还可以录制交互过程并与利益相关者分享,以获取他们的反馈。放大/缩小并查看原型特定部分的细节。如何在 Adobe XD 中创建交互式原型?Adobe XD ...
  • 根据2020年初级药士成绩查询页面显示,2020年初级药士成绩通知单打印开放时间:2020年12月10至2021年5月31,请考生避开高峰期(开始和临近结束时)进行下载打印。2020年初级药士成绩查询入口2020年初级药士成绩...
  • 1、时间字段是datetime类型 2、需要用到中间表,表结构和数据链接下载 链接:https://pan.baidu.com/s/1tAFU4nm1p4CkSneXwceA_A提取码:b3xi 3、前两个 adddate 需要在代码中写死 从每日的-01开始,-最后一个...
  • 2020年8月证券从业考试成绩查询证券从业考试...考生对考试成绩、合格证照片有异议的,应当在成绩公布之起15内向协会提出,超出时间范围将不予受理。成绩查询网址:https://examapi.sac.net.cn/pages/login/exa...
  • 2020年9月证券从业考试成绩查询证券从业考试...考生对考试成绩、合格证照片有异议的,应当在成绩公布之起15内向协会提出,超出时间范围将不予受理。成绩查询网址:https://examapi.sac.net.cn/pages/login/exa...
  •  甲方:法定代表人 注册地址 乙方性别居民身份证号码 出生日期年月日 在甲方工作起始时间年月日 家庭住址 邮政编码 户口所在地省(市)区(县)街道(乡镇) 根据《中华人民共和国劳动法》和有关规定,甲乙双方经...
  • Linux的时间和日期

    2021-01-18 21:15:51
    date #显示当前时间 ...date -s '2020-11-11 11:11:11' #修改当前时间年月日时间 yum install ntp -y #下载相应的软件以及依赖插件 ntpdate cn.ntp.org.cn #更新为当前时间 在这里插入代码片 ...
  •  商用房屋租赁合同范本(一) 合同编号: 出租人:签订地点:承租人:签订时间年月日 第一条租赁房屋座落在、间数、建筑面积、房屋质量。 第二条租赁期限从年月日年月日。 (提示:租赁期限不得超过二十年。...
  • 多年项目经验封装时间类,可以解决99%遇到的时间的需求,强烈推荐下载使用. 支持年月日时分秒加减运算,包含请假天数年龄计算VIP到期等常见需求算法.

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 125
精华内容 50
关键字:

下载年月日时间