搜索
您的当前位置:首页正文

JS-time(JS关于时间的一些使用方法)

2024-06-29 来源:步旅网
 获取当前时间得到当前时间的 YYYY-MM-DD HH:MI:ss 格式function nowtime(){ var _this = new Date(); var yy = _this.getFullYear(); var mm = _this.getMonth()+1<10?'0'+(_this.getMonth()+1):(_this.getMonth()+1); var dd = _this.getDate()<10?'0'+_this.getDate() : _this.getDate(); var hh = _this.getHours() < 10 ? '0' + _this.getHours() : _this.getHours(); var mf = _this.getMinutes() < 10 ? '0' + _this.getMinutes() : _this.getMinutes(); var ss = _this.getSeconds() < 10 ? '0' + _this.getSeconds() : _this.getSeconds(); var nowtime = yy + '-' + mm + '-' + dd + ' ' + hh + ':' + mf + ':' + ss; return nowtime;} //JS获取本地时间格式化方法Date.prototype.Format = function (fmt) { // author: meizz var o = { \"M+\": this.getMonth() + 1, // 月份 \"d+\": this.getDate(), // 日 \"h+\": this.getHours(), // 小时 \"m+\": this.getMinutes(), // 分 \"s+\": this.getSeconds(), // 秒 \"q+\": Math.floor((this.getMonth() + 3) / 3), // 季度 \"S\": this.getMilliseconds() // 毫秒 }; if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + \"\").substr(4 - RegExp.$1.length)); for (var k in o) if (new RegExp(\"(\" + k + \")\").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : ((\"00\" + o[k]).substr((\"\" + o[k]).length))); return fmt;}使用var nowtime = new Date().Format(\"yyyy-MM-dd hh:mm:ss\");//当前时间不需要格式化快速获取方法let time = new Date()console.log(time) //打印结果为:Wed Aug 31 2022 10:47:48 GMT+0800 (中国标准时间)console.log(time.toLocaleString()) //打印结果为:2022/8/31 10:49:41console.log(time.toLocaleDateString()) //打印结果为:2022/8/31console.log(time.toDateString()) //打印结果为:Wed Aug 31 2022console.log(time.toLocaleTimeString()) //打印结果为:10:53:04console.log(time.toTimeString()) //打印结果为:10:54:25 GMT+0800 (中国标准时间)  计算时间差相差的天-小时-分钟-秒传入时间格式YYYY-MM-DD HH:MI:ss 得到两个时间相差的 年-月-天-小时-分钟-秒传入时间格式YYYY-MM-DD 得到两个时间相差的 年月日function difftime(){ var new_date = new Date(); //格式化日期,不传默认当前时间 var old_date = new Date('2021-12-09 11:11:11'); var difftime = (new_date - old_date)/1000; //计算时间差,并把毫秒转换成秒 var year = Math.floor(difftime / 86400 / 365);//年 var month = Math.floor(difftime/ 86400 / 30);//月 var days = parseInt(difftime/86400); // 天 24*60*60*1000 var hours = parseInt(difftime/3600)-24*days; // 小时 60*60 总小时数-过去的小时数=现在的小时数 var minutes = parseInt(difftime%3600/60); // 分钟 -(day*24) 以60秒为一整份 取余 剩下秒数 秒数/60 就是分钟数 var seconds = parseInt(difftime%60); // 以60秒为一整份 取余 剩下秒数 var difftimes = year+\"年,\"+month+\"月,\"+ days+\"天, \"+hours+\"小时, \"+minutes+\"分钟, \"+seconds+\"秒\"; return difftimes;} 相差的分钟传入的时间格式 HH:mi得到相差的分钟数function timeDifference(startTime,endTime){ var start1=startTime.split(\":\"); var startAll=parseInt(start1[0]*60)+parseInt(start1[1]); var end1=endTime.split(\":\"); var endAll=parseInt(end1[0]*60)+parseInt(end1[1]); return endAll-startAll;}console.log(timeDifference(\"08:30\",\"10:30\")); ////120 获取指定日期的前后N天 传入时间格式 date: YYYY-MM-DD ;day:负数为前N天,正数为后N天【!传入时间格式要正确,不能带时分秒!】得到date的 前后day天function getNextDate(date, day) { var dd = new Date(date); dd.setDate(dd.getDate() + day); var y = dd.getFullYear(); var m = dd.getMonth() + 1 < 10 ? \"0\" + (dd.getMonth() + 1) : dd.getMonth() + 1; var d = dd.getDate() < 10 ? \"0\" + dd.getDate() : dd.getDate(); return y + \"-\" + m + \"-\" + d;};console.log(getNextDate(\"2020-01-01\", -1)) ////2019-12-31获取指定日期的前后N个月传入时间格式 date:YYYY-MM-DD ; monthNum:负数为前N月,正数为后N月得到date的 前后monthNum月function GetPreMonthDay(date, monthNum) { var dateArr = date.split('-'); var year = dateArr[0]; //获取当前日期的年份 var month = dateArr[1]; //获取当前日期的月份 var day = dateArr[2]; //获取当前日期的日 var days = new Date(year, month, 0); days = days.getDate(); //获取当前日期中月的天数 var year2 = year; var month2 = parseInt(month) + monthNum; if (month2 <= 0) { year2 = parseInt(year2) - parseInt(month2 / 12 == 0 ? 1 : parseInt(month2) / 12); month2 = 12 - (Math.abs(month2) % 12); } var day2 = day; var days2 = new Date(year2, month2, 0); days2 = days2.getDate(); if (day2 > days2) { day2 = days2; } if (month2 < 10) { month2 = '0' + month2; } var t2 = year2 + '-' + month2 + '-' + day2; return t2;}console.log(GetPreMonthDay(\"2020-01-01\", -1)) ////2019-12-01 计算指定日期为周几传入时间格式 YYYY-MM-DD function getWeek(dateString) { var dateArray = dateString.split(\"-\"); date = new Date(dateArray[0], parseInt(dateArray[1] - 1), dateArray[2]); return \"周\" + \"日一二三四五六\".charAt(date.getDay());}console.log(getWeek('2021-12-09')) ////周四判断多个时间段是否有重复将时间段按数组对象传入;这里只判断的是时分秒s:开始时间 e:结束时间var dateArr = [ { s: '01:00:00', e: '14:30:00' }, { s: '14:20:00', e: '15:05:00' } ]function judege(idx) { for (var k in dateArr) { if (idx !== k) { if (dateArr[k].s <= dateArr[idx].s && dateArr[k].e > dateArr[idx].s) { return false } if (dateArr[k].s < dateArr[idx].e && dateArr[k].e >= dateArr[idx].e) { return false } } } return true}function Fn() { for (var k in dateArr) { if (!judege(k)) { return false } } return true}console.log(Fn()) //true的话表示没有重叠,false表示有重叠 这里使用了for...in循环;for...in 语句用于遍历数组或者对象的属性var obj={name:'小明',age:12}for(var k in obj){ console.log(k) ///name age console.log(obj[k]) ///小明 12}var arr=['小明','小花','小林']for(var k in arr){ console.log(k) ///0 1 2 console.log(arr[k]) ///小明 小花 小林}var arrobj=[{name:'小明',age:12},{name:'小花',age:15}]for(var k in arrobj){ console.log(k) ///0 1 console.log(arrobj[k]) ///{name:'小明',age:12} {name:'小花',age:15}}由此可以看出使用for...in 遍历对象时,k为对象的属性;遍历数组和数组对象时,k为下标倒计时传入一个固定的结束时间function getEndTime(endTime) { var startDate = new Date(); //开始时间,当前时间 var endDate = new Date(endTime); //结束时间,需传入时间参数 var t = endDate.getTime() - startDate.getTime(); //时间差的毫秒数 var d = 0, h = 0, m = 0, s = 0; if (t >= 0) { d = Math.floor(t / 1000 / 3600 / 24); h = Math.floor(t / 1000 / 60 / 60 % 24); m = Math.floor(t / 1000 / 60 % 60); s = Math.floor(t / 1000 % 60); } return {d:d,h:h,m:m,s:s};}var active = document.getElementById(\"active\");var timer = setInterval(() => { var time = getEndTime('2021-12-10 12:00:00')//此处设置你想要结束的时间 var endtime = '距离干饭还有:' + time.d + '天' + time.h + '小时' + time.m + '分钟' + time.s + '秒'; if(time.d == 0 && time.h == 0 && time.m == 0 && time.s == 0){ clearInterval(timer); active.innerHTML = \"干饭!!!\"; }}, 1000);   

因篇幅问题不能全部显示,请点此查看更多更全内容

Top