我的编程空间,编程开发者的网络收藏夹
学习永远不晚

vue日期时间工具类详解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

vue日期时间工具类详解

最近做的一个项目对日期时间的处理比较多,最后整理到一个工具类里面,方便以后使用:

1. 在utils文件夹下新建一个dateTimeUtil.js文件:

// 获取当前时间并格式化
export function getCurrentTime(){
  var date = new Date()
  var month = date.getMonth() + 1
  var day = date.getDate()
  if (month <= 9) {
    month = '0' + month
  }
  if (day <= 9) {
    day = '0' + day
  }
  return date.getFullYear() + '-' + month + '-' + day + '  ' + date.getHours() + ':' + date.getMinutes() + ':' + date.getSeconds()
}
 
// 时间格式化
export function formatTime(v) {
  var date = new Date(v)
  var month = date.getMonth() + 1
  var day = date.getDate()
  if (month <= 9) {
    month = '0' + month
  }
  if (day <= 9) {
    day = '0' + day
  }
  return date.getFullYear() + '-' + month + '-' + day + '  ' + date.getHours() + ':' + date.getMinutes() + ':' + date.getSeconds()
}
 
// 日期格式化
export function formatDate(v) {
  var date = new Date(v)
  var month = date.getMonth() + 1
  var day = date.getDate()
  if (month <= 9) {
    month = '0' + month
  }
  if (day <= 9) {
    day = '0' + day
  }
  return date.getFullYear() + '-' + month + '-' + day
}
 
// 获取前、后n天 https://www.cnblogs.com/aoqizhonghua/p/11775982.html
export function getRangeDate(num, time){
  let n = num;
  let d = '';
  if (time) {
    d = new Date(time);
  } else {
    d = new Date();
  }
  let year = d.getFullYear();
  let mon = d.getMonth() + 1;
  let day = d.getDate();
  if(day <= n) {
      if(mon > 1) {
          mon = mon - 1;
      } else {
          year = year - 1;
          mon = 12;
      }
  }
  d.setDate(d.getDate() - n);
  year = d.getFullYear();
  mon = d.getMonth() + 1;
  day = d.getDate();
  let s = year + "-" + (mon < 10 ? ('0' + mon) : mon) + "-" + (day < 10 ? ('0' + day) : day);
  return s;
}
 
//获取某个月的起始、终止日期
export function getMonthDate(y, m){
  let start = new Date(y, m-1, 1)
  let year = start.getFullYear();
  let mon = start.getMonth() + 1;
  let day = start.getDate();
  let startDate = year + "-" + (mon < 10 ? ('0' + mon) : mon) + "-" + (day < 10 ? ('0' + day) : day)
 
  let end = new Date((new Date(y, m, 0).getTime() + 24*60*60*1000)-1)
  let year1 = end.getFullYear();
  let mon1 = end.getMonth() + 1;
  let day1 = end.getDate();
  let endDate = year1 + "-" + (mon1 < 10 ? ('0' + mon1) : mon1) + "-" + (day1 < 10 ? ('0' + day1) : day1)
 
  return startDate + ' —— ' + endDate
}
 

export function getYearWeek(a, b, c){
  var date1 = new Date(a, parseInt(b) - 1, c),
      date2 = new Date(a, 0, 1),
      d = Math.round((date1.valueOf() - date2.valueOf()) / 86400000)
      
  return Math.ceil((d + ((date2.getDay() + 1) - 1)) / 7)
}
 
// 计算某年某周的日期范围 https://blog.csdn.net/lyhuo/article/details/82661063
export function weekGetDate(year, weeks){
  var date = new Date(year, "0", "1")
  var time = date.getTime() // 获取当前星期几,0:星期一     
  var _week = date.getDay()    //当这一年的1月1日为周日时则本年有54周,否则没有54周,没有则去除第54周的提示    
  if(_week!=0){//一年53周情况
    if(weeks==54){
      return '-1' //今年没有54周
    }    
    var cnt=0// 获取距离周末的天数    
    if(_week==0){
      cnt = 7  
    }else if(_week==1){
      cnt = 6  
    }else if(_week==2){   
      cnt = 5
    }else if(_week==3){   
      cnt = 4
    }else if(_week==4){    
      cnt = 3
    }else if(_week==5){    
      cnt = 2
    }else if(_week==6){    
      cnt = 1
    }    
    cnt += 1//加1表示以星期一为一周的第一天    // 将这个长整形时间加上第N周的时间偏移    
    time += cnt*24*3600000 //第2周开始时间 
    var nextYear = new Date(parseInt(year,10)+1,"0","1")  
    var nextWeek = nextYear.getDay()
    var lastcnt = 0//获取最后一周开始时间到周末的天数    
    if(nextWeek==0){    
      lastcnt = 6  
    }else if(nextWeek==1){    
      lastcnt = 0 
    }else if(nextWeek==2){    
      lastcnt = 1 
    }else if(nextWeek==3){ 
      lastcnt = 2 
    }else if(nextWeek==4){    
      lastcnt = 3 
    }else if(nextWeek==5){    
      lastcnt = 4 
    }else if(nextWeek==6){    
      lastcnt = 5
    }    
    if(weeks==1){//第1周特殊处理    // 为日期对象 date 重新设置成时间 time
      // var start = date.Format("yyyy-MM-dd");
      var start = date.toLocaleDateString().split('/').join('-')
      date.setTime(time-24*3600000)
      var end = date.toLocaleDateString().split('/').join('-')
      return start + "-----" + end
    }else if(weeks==53){//第53周特殊处理    
      var start = time+(weeks-2)*7*24*3600000 //第53周开始时间    
      var end = time+(weeks-2)*7*24*3600000 + lastcnt*24*3600000 - 24*3600000 //第53周结束时间
      date.setTime(start)
      // var _start = date.Format("yyyy-MM-dd");
      var _start = date.toLocaleDateString().split('/').join('-')
      date.setTime(end)
      // var _end = date.Format("yyyy-MM-dd");
      var _end = date.toLocaleDateString().split('/').join('-')
      return _start + "---"  + _end
    }else{    
      var start = time+(weeks-2)*7*24*3600000 //第n周开始时间    
      var end = time+(weeks-1)*7*24*3600000 - 24*3600000 //第n周结束时间
      date.setTime(start)
      // var _start = date.Format("yyyy-MM-dd");
      var _start = date.toLocaleDateString().split('/').join('-')
      date.setTime(end)
      // var _end = date.Format("yyyy-MM-dd");
      var _end = date.toLocaleDateString().split('/').join('-')
      return _start + "---"  + _end
    } 
  }else{//一年54周情况    
    var cnt=0// 获取距离周末的天数    
    if(_week==0 && weeks==1){//第一周    
      cnt = 0  
    }else if(_week==0){    
      cnt = 7 
    }else if(_week==1){    
      cnt = 6   
    }else if(_week==2){    
      cnt = 5 
    }else if(_week==3){    
      cnt = 4  
    }else if(_week==4){    
      cnt = 3
    }else if(_week==5){    
      cnt = 2  
    }else if(_week==6){    
      cnt = 1  
    }    
    cnt += 1//加1表示以星期一为一周的第一天    
    // 将这个长整形时间加上第N周的时间偏移    
    time += 24*3600000 //第2周开始时间    
    var nextYear = new Date(parseInt(year,10)+1,"0","1")   
    var nextWeek = nextYear.getDay()   
    var lastcnt = 0 //获取最后一周开始时间到周末的天数    
    if(nextWeek==0){    
      lastcnt = 6
    }else if(nextWeek==1){    
      lastcnt = 0    
    }else if(nextWeek==2){ 
      lastcnt = 1
    }else if(nextWeek==3){    
      lastcnt = 2
    }else if(nextWeek==4){    
      lastcnt = 3   
    }else if(nextWeek==5){    
      lastcnt = 4   
    }else if(nextWeek==6){    
      lastcnt = 5 
    }    
    if(weeks==1){//第1周特殊处理
      // var start = date.Format("yyyy-MM-dd");
      var start = date.toLocaleDateString().split('/').join('-')
      date.setTime(time-24*3600000)
      alert(start +'--'+ date)
      return _start + "---"  + date
    }else if(weeks==54){//第54周特殊处理    
      var start = time+(weeks-2)*7*24*3600000 //第54周开始时间    
      var end = time+(weeks-2)*7*24*3600000 + lastcnt*24*3600000 - 24*3600000 //第53周结束时间
      date.setTime(start)
      // var _start = date.Format("yyyy-MM-dd"); 
      var _start = date.toLocaleDateString().split('/').join('-')
      date.setTime(end)
      // var _end = date.Format("yyyy-MM-dd");
      var _end = date.toLocaleDateString().split('/').join('-')
      return _start + "---"  + _end
    }else{    
      var start = time+(weeks-2)*7*24*3600000 //第n周开始时间    
      var end = time+(weeks-1)*7*24*3600000 - 24*3600000 //第n周结束时间
      date.setTime(start)
      // var _start = date.Format("yyyy-MM-dd");
      var _start = date.toLocaleDateString().split('/').join('-')
      date.setTime(end)
      // var _end = date.Format("yyyy-MM-dd");
      var _end = date.toLocaleDateString().split('/').join('-')
      return _start + "---"  + _end
    }    
  }    
}
 
// 计算某年某月的日期范围
export function monthGetDate(year, months) {
  var year = year
  var month = months
  month = month < 10 ? "0" + month: month
  var firstday = year + "-" + month + "-" + "01"
  var lastday = ""
  if (month == "01" || month == "03" || month == "05" || month == "07" || month == "08" || month == "10" || month == "12") {
    lastday = year + "-" + month + "-" + 31
  } else if (month == "02") {
    if ((year % 4 == 0 && year % 100 != 0) || (year % 100 == 0 && year % 400 == 0)) {
      lastday = year + "-" + month + "-" + 29
    } else {
      lastday = year + "-" + month + "-" + 28
    }
  } else {
    lastday = year + "-" + month + "-" + 30
  }
  return firstday + '---' + lastday
}
 
//生成随机字符串方法
export function getString() {
  let time = new Date()
  time = time.getTime()
 
  return `${Math.random().toString(36).substr(2, 10)}${time}`
}
 
//升序排序
export function bubbleSortUp(arr, flag) {
  for (var i = 0; i < arr.length; i++) {
    for (var j = 0; j < arr.length - i - 1; j++) {
      if (arr[j][flag] > arr[j + 1][flag]) {
        var c = arr[j];
        arr[j] = arr[j + 1];
        arr[j + 1] = c;
      }
    }
  }
 
  return arr;
}
 
//降序排序
export function bubbleSortDown(arr, flag) {
  for (var i = 0; i < arr.length; i++) {
    for (var j = 0; j < arr.length - i - 1; j++) {
      if (arr[j][flag] < arr[j + 1][flag]) {
        var c = arr[j + 1];
        arr[j + 1] = arr[j];
        arr[j] = c;
      }
    }
  }
 
  return arr;
}
 
//减法精度处理
export function floatSub(arg1, arg2) {
  var r1, r2, m, n;
  try { r1 = arg1.toString().split(".")[1].length } catch (e) { r1 = 0 }
  try { r2 = arg2.toString().split(".")[1].length } catch (e) { r2 = 0 }
  m = Math.pow(10, Math.max(r1, r2));
  n = (r1 >= r2) ? r1 : r2;
 
  return ((arg1 * m - arg2 * m) / m).toFixed(n);
}

2. 在需要的文件中引入使用:

获取七天前的日期:

let day7 = util.getRangeDate(7)

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

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

vue日期时间工具类详解

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

下载Word文档

猜你喜欢

Java日期工具类的封装详解

在日常的开发中,我们难免会对日期格式化,对日期进行计算,对日期进行校验,为了避免重复写这些琐碎的逻辑,我这里封装了一个日期工具类,方便以后使用,直接复制代码到项目中即可使用,需要的可以参考一下
2022-11-13

Java日期工具类DateUtils实例详解

在项目开发中,日期是我们必不可少的的一部分,本文将总结代码开发中的关于日期常用的一些方法,以方便自己后期使用。下面直接上菜了:package com.example.util; import java.text.ParseExceptio
2023-05-30

java时间戳与日期相互转换工具详解

本文为大家分享了java日期与时间戳相互转换大全,供大家参考,具体内容如下package com.crm.util; import java.math.BigDecimal; import java.text.DecimalFormat;
2023-05-30

Java中Date日期时间类具体使用

本文主要介绍了Java中Date日期时间类具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-05-17

java DateUtil工具类时间戳类型转换详解

本文实例为大家分享了DateUtil工具类时间戳类型转换的具体代码,供大家参考,具体内容如下package com.sinosoft.media.sms.util; import java.text.ParseException; impo
2023-05-30

Python中的日期时间处理详解

Python中关于时间、日期的处理库有三个:time、datetime和Calendar,其中datetime又有datetime.date、datetime.time、datetime.datetime三个类。而时间又可以分为时间戳、本地
2022-06-04

编程热搜

目录