<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
最近做的一個專案對日期時間的處理比較多,最後整理到一個工具類裡面,方便以後使用:
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 } /* 當前日期是年的第幾周 date1是當前日期 date2是當年第一天 d是當前日期是今年第多少天 用d + 當前年的第一天的周差距的和在除以7就是本年第幾周 */ 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)
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45