最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

vue使用laydate时间插件的方法

来源:懂视网 责编:小采 时间:2020-11-27 22:03:48
文档

vue使用laydate时间插件的方法

vue使用laydate时间插件的方法:之前在做vue项目时使用iviewUI库中的DatePicker组件,发现DatePicker使用起来比较麻烦,尤其是对时间精确度上的限制不尽人意,操作起来也比较繁琐,总之在处理一系列时间组件相互联动上存在一大堆问题,比如 DatePicker时间组件 时间精确到分,组件
推荐度:
导读vue使用laydate时间插件的方法:之前在做vue项目时使用iviewUI库中的DatePicker组件,发现DatePicker使用起来比较麻烦,尤其是对时间精确度上的限制不尽人意,操作起来也比较繁琐,总之在处理一系列时间组件相互联动上存在一大堆问题,比如 DatePicker时间组件 时间精确到分,组件

之前在做vue项目时使用iviewUI库中的DatePicker组件,发现DatePicker使用起来比较麻烦,尤其是对时间精确度上的限制不尽人意,操作起来也比较繁琐,总之在处理一系列时间组件相互联动上存在一大堆问题,比如


DatePicker时间组件

时间精确到分,组件1的value等于组件2的最小值,组件2的vlaue等于组件3的最小值,。。依次类推,如果是时间精确到日,这个组件没有任何问题,如果是精确到时分秒,这个组件的对时分秒的控制就不是那个灵敏了,在点击时分秒之后才能识别出对时分秒的限制,而这种用户体验不够友好。

所以,想到了以前用过的laydate时间插件

在vue中使用laydate

在vue组件中npm install laydate,然后在vue组件中直接引入:

import laydate from 'laydate'

然后在mounted中调用:

laydate.now();

发现chrome浏览器控制台中报错,laydate is not defined,然后把laydate.js放在静态资源里面引入:

import laydate from '../../static/js/laydate.js'

发现chrome浏览器控制台中依然是报错,laydate is not defined,然后在html入口文件中引入:

<script src="./src/static/js/laydate.js"></script>

发现chrome浏览器控制台中不报,laydate is not defined,但是又报另外一个错误:require is not defined,查看原码发现是因为laydate.js中在引用css样式表时未定义:require('./need/laydate.css');require('./skins/default/laydate.css'); 

最后使用laydate打包构建后的文件:dist/laydate/laydate.min.js,把laydate.min.js和css粘贴到src/static/路径下,注意js和css结构不要改变

<script src="./src/static/laydate/laydate.min.js"></script>

然后在chrome浏览器中成功打印出了laydate.now()的值:2018-10-21

然后使用import方式引入laydate.min.js:

import laydate from '../../static/laydate/laydate.min.js'

chrome控制台里有报错:laydate.now is not a function

原因时laydate.min.js是直接把laydate对象注册到了window上,本身并没有export default laydate出口,所以不能使用这种方式引用,应该使用:

import '../../static/laydate.min.js'

这样引用后,chrome中成功打印laydate.now(); 2018-10-21

或者在入口文件index.html中使用cdn加速方式引入laydate.min.js也是可以的:

<script src="https://cdn.jsdelivr.net/npm/laydate@1.0.7/dist/laydate.min.js"></script>

当然,如果项目中只是个别地方是使用到时间插件,建议采用import方式引入

laydate.min.js时间插件在vue组件中的使用方式

<template>
 <div id="laydateIndex">
 <div class="input-item">
 <label for="">请选择时间:</label>
 <input type='text' 
 name='houseChangeTime' 
 placeholder='请选择日期' 
 class='form-control' 
 onclick="laydate({ istime: true, format: 'YYYY/MM/DD hh:mm:ss' })" />
 </div>
 <div class="input-item">
 <label for="">开始时间:</label>
 <input type="text" name="" id="begintime" placeholder='请选择日期'>
 </div>
 <div class="input-item">
 <label for="">结束时间:</label>
 <input type="text" name="" id="endtime" placeholder='请选择日期'>
 </div>
 </div>
</template>
<script>
 import '../../assets/js/laydate.min.js'
 export default {
 name: 'laydateIndex',
 data () {
 return {
 begintime: '',
 endtime: '',
 start_time: '',
 }
 },
 methods: {
 setBeginTime () {
 var _this = this;
 var mintime = laydate.now(0, 'YYYY-MM-DD hh:mm:ss');
 _this.$data.begintime = mintime;
 _this.$data.endtime = mintime;
 var begintiem_options = {
 elem: '#begintime',
 format: 'YYYY-MM-DD hh:mm:ss', // 分隔符可以任意定义
 event: 'click', //触发事件
 istime: true, //是否开启时间选择
 isclear: true, //是否显示清空
 issure: true, //是否显示确认
 festival: true, //是否显示节日
 min: mintime, //最小日期
 max: '2099-12-31 23:59:59', //最大日期
 start: mintime, //开始日期
 fixed: true, //是否固定在可视区域
 zIndex: 99999999, //css z-index
 choose: function(dates) { // 选择日期完毕的回调
 endtime_options.start = dates;
 endtime_options.min = dates;
 _this.$data.begintime = dates;
 _this.$data.endtime = dates;
 }
 };
 
 var endtime_options = {
 elem: '#endtime',
 format: 'YYYY-MM-DD hh:mm:ss', // 分隔符可以任意定义
 event: 'click', //触发事件
 istime: true, //是否开启时间选择
 isclear: true, //是否显示清空
 issure: true, //是否显示确认
 festival: true, //是否显示节日
 min: _this.$data.begintime, //最小日期
 max: '2099-12-31 23:59:59', //最大日期
 start: _this.$data.begintime, //开始日期
 fixed: true, //是否固定在可视区域
 zIndex: 99999999, //css z-index
 choose: function(dates) { // 选择日期完毕的回调
 // this.begintiem_options = dates;
 }
 };
 
 laydate(begintiem_options);
 laydate(endtime_options);
 
 },
 initPage () {
 var _this = this;
 _this.setBeginTime();
 },
 },
 mounted () {
 this.initPage();
 },
 }
</script>

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

vue使用laydate时间插件的方法

vue使用laydate时间插件的方法:之前在做vue项目时使用iviewUI库中的DatePicker组件,发现DatePicker使用起来比较麻烦,尤其是对时间精确度上的限制不尽人意,操作起来也比较繁琐,总之在处理一系列时间组件相互联动上存在一大堆问题,比如 DatePicker时间组件 时间精确到分,组件
推荐度:
标签: 时间 日期 VUE
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top