美文网首页
选择vant日期组件Calendar 日历

选择vant日期组件Calendar 日历

作者: jesse28 | 来源:发表于2022-01-16 16:40 被阅读0次
  <!--发现时间-->
        <van-field readonly clickable name="picker" :value="form.crimeTimeName" label="发现时间" placeholder="点击选择发现时间" @click="calendarShow = true" required :rules="[{ required: true, message: '请选择发现时间' }]" />
        <!--        时间组件-->
        <van-calendar v-model="calendarShow" :min-date="minDate" :max-date="maxDate" :show-confirm="false" @confirm="onConfirmDate" />
        <van-popup v-model="datetimePickerShow" position="bottom">
          <van-datetime-picker type="time" title="选择时间" @cancel="cancelDatetimePicker" @confirm="confirmDatetimePicker" />
        </van-popup>

将 show-confirm 设置为 false 可以隐藏确认按钮,这种情况下选择完成后会立即触发 confirm 事件。

方法
getTime() 方法可返回距 1970 年 1 月 1 日之间的毫秒数。

import { formatDate,parseDate } from "@/common/wordBook";
    //日历
    onConfirmDate(date) {
      this.datetimePickerShow = true;  //显示时分的弹窗组件
      this.currentDate = formatDate(date.getTime(), 'yyyy-MM-dd')
    },
//点击取消取消选择时分组件
  cancelDatetimePicker() {
      this.datetimePickerShow = false;
    },
   //时分确认
    confirmDatetimePicker(date) {
      this.form.crimeTimeName = this.currentDate + " " + date;
      this.form.crimeTime = parseDate(this.form.crimeTimeName + ":00");
      this.calendarShow = false;
      this.datetimePickerShow = false;
    },
// 日期格式化 formatDate(time,'yyyy-MM-dd hh:mm:ss')
export function formatDate(date, fmt) {
    if (typeof date !== 'number') {
        date = Number(date)
    }
    if (date < 1) {
        return ''
    } else {
        date = new Date(date);
        if (/(y+)/.test(fmt)) {
            fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
        }
        let o = {
            'M+': date.getMonth() + 1,
            'd+': date.getDate(),
            'h+': date.getHours(),
            'm+': date.getMinutes(),
            's+': date.getSeconds()
        };
        for (let k in o) {
            if (new RegExp(`(${k})`).test(fmt)) {
                let str = o[k] + '';
                fmt = fmt.replace(RegExp.$1, RegExp.$1.length === 1 ? str : padLeftZero(str))
            }
        }
        return fmt
    }

}

function padLeftZero(str) {
    return ('00' + str).substr(str.length)
}


/**
 * 字符串时间转换成时间戳
 * @param dateStr 支持 2018-11-5 11:24:51 | 2018/11/5 11:24:54 | 2018-11-5T11:25:09.256Z
 * @returns {number} 时间戳
 */
export const parseDate = (dateStr) => {
  console.log(dateStr)
  const rShortMatch = /^\s*(\d{4})-(\d{1,2})-(\d{1,2})\s*$/,
    rLongMatch = /^\s*(\d{4})-(\d{1,2})-(\d{1,2})\s+(\d{1,2}):(\d{1,2}):(\d{1,2})\s*$/,
    rMaxMatch = /^\s*(\d{4})-(\d{1,2})-(\d{1,2})T(\d{1,2}):(\d{1,2}):(\d{1,2}).*\s*$/,
    rLedMatch = /^\s*(\d{4})\/(\d{1,2})\/(\d{1,2})\s+(\d{1,2}):(\d{1,2}):(\d{1,2})\s*$/;
  var match;

  if (match = dateStr.match(rShortMatch)) {
    return +new Date(+match[1], +match[2] - 1, +match[3])
  } else if (match = dateStr.match(rLongMatch)) {
    return +new Date(+match[1], +match[2] - 1, +match[3], +match[4], +match[5], +match[6])
  } else if (match = dateStr.match(rMaxMatch)) {
    console.log(match)
    return +new Date(+match[1], +match[2] - 1, +match[3], +match[4], +match[5], +match[6])
  } else if (match = dateStr.match(rLedMatch)) {
    return +new Date(+match[1], +match[2] - 1, +match[3], +match[4], +match[5], +match[6])
  }
};

相关文章

  • 选择vant日期组件Calendar 日历

    将 show-confirm 设置为 false 可以隐藏确认按钮,这种情况下选择完成后会立即触发 confirm...

  • VANT 组件 Calendar 日历 + DatetimePi

    H5页面,因为组件没有直接提供可以选中日历跟日期的组件所有吧二者结合一下使用上代码 努力学习中,争取月入过万!!!!

  • iOS第三方资源汇总

    FSCalendar 日历组件 A fully customizable iOS calendar library...

  • java日期处理

    java日期 java日期时间处理,主要是三个类Date(日期)、Calendar(日历)、DateFormat(...

  • 日期

    The calendar shows the date. 日历显示日期。There are 12 months i...

  • wrs-calendar日历插件

    前言 wrs-calendar是app原生日历控件插件 功能 支持单选、多选、单个范围选择日期 自定义选中日期颜色...

  • android仿携程的日历选择控件

    欢迎大家下载我个人开发的app安琪花园 Calendar_Select 日历选择这个库支持单选日期以及选择时间段,...

  • vue-event-calendar

    vue-event-calendar vue-event-calendar是一款简单小巧的事件日历组件,针对Vue...

  • wevant 日历组件 van-calendar 2020-04

    1.van-calendar 日历组件 直接通过npm 拉取 发现没有没有包含calendar, 需要手动去...

  • vant日历(van-calendar)报错

    再vue项目中引入了vant.js,但是一直报错,提示没有注册,后来发现是因为van-calendar这个组件是再...

网友评论

      本文标题:选择vant日期组件Calendar 日历

      本文链接:https://www.haomeiwen.com/subject/ejbfhrtx.html