Vue实现点击时间获取时间段查询功能

本文实例为大家分享了vue按时间段查询的案例,效果图如下

html代码

<template>
<div class="personalReport_time">
   <input type="date" :max="this.endTime" value="" v-model="startTime"/>
   <div></div>
   <input type="date" :min="startTime" :max="this.maxTime" v-model="endTime"/>
  </div>
  <ul class="personalReport_date">
   <li @click="query('today')">今天</li>
   <li @click="query('yesterday')">昨天</li>
   <li @click="query('weeks')">本周</li>
   <li @click="query('lastWeek')">上周</li>
   <li @click="query('month')">本月</li>
   <li @click="query('lastMonth')">上月</li>
  </ul>
  <div>
   <button @click="query" class="but">查询</button>
  </div>
  </template>

vue.js代码 点击事件

//获取时间、
//时间解析;
  Time:function(now)  {
  let year=new Date(now).getFullYear();
  let month=new Date(now).getMonth()+1;
  let date=new Date(now).getDate();
  if (month < 10) month = "0" + month;
  if (date < 10) date = "0" + date;
  return  year+"-"+month+"-"+date
 },
  //本周第一天;
  showWeekFirstDay:function()
 {
  let Nowdate=new Date();
  let WeekFirstDay=new Date(Nowdate-(Nowdate.getDay()-1)*86400000);
  let M=Number(WeekFirstDay.getMonth())+1;
  if(M<10){
   M="0"+M;
  }
  let D=WeekFirstDay.getDate();
  if(D<10){
   D="0"+D;
  }
  return WeekFirstDay.getFullYear()+"-"+M+"-"+D;
 },
  //本周最后一天
  showWeekLastDay:function ()
 {
  let Nowdate=new Date();
  let WeekFirstDay=new Date(Nowdate-(Nowdate.getDay()-1)*86400000);
  let WeekLastDay=new Date((WeekFirstDay/1000+6*86400)*1000);
  let M=Number(WeekLastDay.getMonth())+1;
  if(M<10){
   M="0"+M;
  }
  let D=WeekLastDay.getDate();
  if(D<10){
   D="0"+D;
  }
  return WeekLastDay.getFullYear()+"-"+M+"-"+D;
 },
  //获得某月的天数:
  getMonthDays:function (myMonth){
  let monthStartDate = new Date(new Date().getFullYear(), myMonth, 1);
  let monthEndDate = new Date(new Date().getFullYear(), myMonth + 1, 1);
  let  days  =  (monthEndDate  -  monthStartDate)/(1000  *  60  *  60  *  24);
  return  days;
 },
//点击事件
query:function (way) {
   let self=this;
   this.$refs.pag.currentPage=1;
   this.page=this.$refs.pag.currentPage;
   switch (way){
    case 'today':
     this.startTime=this.maxTime;
     this.endTime=this.maxTime;
     break;
    case 'yesterday':
     this.startTime=this.Time(new Date().getTime()-24*60*60*1000);
     this.endTime=this.Time(new Date().getTime()-24*60*60*1000);
     break;
    case 'weeks':
     this.startTime=this.showWeekFirstDay();
     this.endTime=this.maxTime;
     break;
    case 'lastWeek':
     this.startTime=this.Time(new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate()-new Date().getDay()-6));
     this.endTime=this.Time(new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate()+(6-new Date().getDay()-6)));
     break;
    case 'month':
     this.startTime=this.Time(new Date(new Date().getFullYear(), new Date().getMonth(),1));
     this.endTime=this.maxTime;
     break;
    case 'lastMonth':
     this.startTime=this.Time(new Date(new Date().getFullYear(),new Date().getMonth()-1,1));
     this.endTime=this.Time(new Date(new Date().getFullYear(),new Date().getMonth()-1,this.getMonthDays(new Date().getMonth()-1)));
     break;
   }
   this.$axios({
    method:'post',
    url:'/inter/user/queryMemberReport',
    data:{
     'account':this.account,
     'baseLotteryId':this.lottersId,
     'startTime':this.startTime,
     'endTime':this.endTime
    }
   }).then(function (data) {
//    console.log(data)
   }).catch(function (error) {
    console.log(error);
   })
  }

这样一个点击查询时间段效果就可以实现了。

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

您可能感兴趣的文章:

  • 使用Vue开发一个实时性时间转换指令
  • vue与bootstrap实现时间选择器的示例代码
  • 详解vue2.0的Element UI的表格table列时间戳格式化
  • vue时间格式化实例代码
  • vue2.0 自定义日期时间过滤器
  • vue2.0实现倒计时的插件(时间戳 刷新 跳转 都不影响)
  • vue.js将unix时间戳转换为自定义时间格式
  • vue.js实现仿原生ios时间选择组件实例代码
  • 使用Vue.js创建一个时间跟踪的单页应用
  • VUEJS实战之修复错误并且美化时间(2)
(0)

相关推荐

  • vue与bootstrap实现时间选择器的示例代码

    一.下载bootstrap-datetimepicker时间选择器js,css文件. 1. github地址:bootstrap-datetimepicker 2. 官方网站地址:官网bootstrap-datetimepicker地址,有具体的例子与解释 二.在vue项目文件中引入 import './assets/css/bootstrap.min.css' import "./assets/css/bootstrap-datetimepicker.min.css" import

  • vue2.0实现倒计时的插件(时间戳 刷新 跳转 都不影响)

    我发现好多倒计时的插件,刷新都会变成从头再来,于是自己用vue2.0写了一个,测试通过,直接上代码 如下是组件代码: <template> <span :endTime="endTime" :callback="callback" :endText="endText"> <slot> {{content}} </slot> </span> </template> <sc

  • vue时间格式化实例代码

    整理文档,搜刮出一个vue时间格式化实例代码,稍微整理精简一下做下分享. export function formatDate(date, fmt) { 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

  • 使用Vue.js创建一个时间跟踪的单页应用

    Vue.js很简单.正因为如此简单,人们常常认为其适合于小项目.虽然真正的Vue.js核心知识只是一个视图层库,实际上有一组工具,将使您能够使用Vue.js构建完整的大规模SPA(单页应用程序). SPA应用可以在不完全重新加载网页,产生一个更流畅的用户体验到的用户交互响应.还有好的副作用,SPA还鼓励后端专注于展示数据端点,这使得整体架构更加分离,并且对于其他类型的客户端可能是可重用的. 从开发人员的角度来看,SPA和传统的后端呈现应用程序之间的主要区别是,我们必须将客户端视为具有自己架构的应

  • 使用Vue开发一个实时性时间转换指令

    前言 最近有一个说法,如果你看见某个网站的某个功能,你就大概能猜出背后的业务逻辑是怎么样的,以及你能动手开发一个一毛一样的功能,那么你的前端技能算是进阶中高级水平了.比如咱们今天要聊的这个话题:如何用Vue开发一个实时性的时间转换指令? 接下来正文从这开始~ 如上图所示(我是截取的某技术社区首页的部分页面),大家看到用红色边框勾选中的时间文字了吧.很多网站发布动态的时候,都会有一个相对本机时间转换后的相对时间.那你知道这个功能实现的背后原理是什么吗?如果有兴趣的,请备好瓜子,茶水,继续往下读.

  • 详解vue2.0的Element UI的表格table列时间戳格式化

    这两天学习了vue2.0的Element UI的表格table列时间戳格式化,所以,今天添加一点小笔记. 表格属性 <el-table :data="tableData" v-loading.body="loading" border @selection-change="selectionChange" style="width: 100%"> <el-table-column prop="cre

  • vue.js实现仿原生ios时间选择组件实例代码

    前言 最近几个月一直在看VUE,然后试着只用原生js+vue实现某些组件. PC端时间选择组件 这是最开始实现的pc上的时间选择,平时移动端也在做,所以就想实现一下移动端的时间选择器,下面分享一下我实现移动端滚轮特效时间选择器的思路和过程.整个组件是基于vue-cli来进行构建的 功能 1.时间选择[ A.年月日选择 B.年月日小时分钟选择 C.小时分钟选择 D.分钟选择] 2.滚轮效果[ A.构成一个圆环首尾相连 B.不构成首尾相连] 3.时间选择范围设置(所选时间超过范围将弹窗提示),分钟间

  • vue.js将unix时间戳转换为自定义时间格式

    本方法通过vue.js filter实现将unix时间戳转换为自定义标准时间格式 <!-- js代码 --> $().ready(function() { <!-- 自定义filter名称为'time' --> Vue.filter('time', <!-- value 格式为13位unix时间戳 --> <!-- 10位unix时间戳可通过value*1000转换为13位格式 --> function(value) { var date = new Dat

  • VUEJS实战之修复错误并且美化时间(2)

    前言 在上一章中,我们通过基础的搭建,成功的渲染了列表页面.但是,其中的问题是很多的.这一章,我们来解决这些问题. 使用 v-bind 绑定数据. 上一章的代码,我们渲染出来了页面.但是如果打开了控制台,你会发现有错误.如下图所示: 这是因为页面进来的时候,会先执行我们的html代码,而此时,我们的vue还没开始工作.而我们的代码如下: <li v-for="info in data"> <i class="user_ico"> <im

  • vue2.0 自定义日期时间过滤器

    方法一: // template {{a | data}} //script data:{ a: Date.now() } filters: { data:function (input) { var d = new Date(input); var year = d.getFullYear(); var month = d.getMonth() + 1; var day = d.getDate() <10 ? '0' + d.getDate() : '' + d.getDate(); var

随机推荐