js,vue,任意天几个月/几周前之前或之后的开始结束时间戳,获取某天对应周周一,判断两天是不是相同一周,对应年所有月,对应月所有周(以每月第一周开始为第一周, 您所在的位置:网站首页 获取前一天的日期java js,vue,任意天几个月/几周前之前或之后的开始结束时间戳,获取某天对应周周一,判断两天是不是相同一周,对应年所有月,对应月所有周(以每月第一周开始为第一周,

js,vue,任意天几个月/几周前之前或之后的开始结束时间戳,获取某天对应周周一,判断两天是不是相同一周,对应年所有月,对应月所有周(以每月第一周开始为第一周,

2023-04-30 07:13| 来源: 网络整理| 查看: 265

一.获取某天几个月之前/后的时间戳,

m为number类型,正数是m月之前,0是当前月,负数是-m月之后 date为Date类型数据,为可选值,默认为当前时间 返回值为

[对应月份的1号00:00:00,对应月份月末的23:59:59]

function GetPreMonth(m: number, date?: Date): Date[] { var preYear = 0; var resultDate, year, month; var currDate = date ? new Date(date.getTime()) : new Date();//获取目标日时间戳默认值是当前日 let oneDay = 24 * 3600 * 1000; year = currDate.getFullYear();//获取目标年 month = currDate.getMonth() + 1;//获得目标月 var year2 = year; var month2 = parseInt(month) - m;//获得目标月m月前 if (month2 12) { preYear = parseInt(m / 12); year2 = parseInt(year2 - preYear); month2 = (Math.abs(month2) % 12) == 0 ? 12 : (Math.abs(month2) % 12); } resultDate = [new Date(Date.parse(year2 + ' ' + month2 + ' ' + 1)), new Date(Number(new Date(year2, month2, 0)) + oneDay - 1)] return resultDate; } 复制代码 二.获取某天几个周之前/后的时间戳,

m为number类型,正数是m周之前,0是当前周,负数是-m周之后 date为Date类型数据,为可选值,默认为当前时间

返回值为 [对应周的周一00:00:00,对应周的周日的23:59:59]

function GetPreWeek(m: number, date?: Date): Date[] { var resultDate; let oneDay = 24 * 3600 * 1000;//一天的ms let data = date ? new Date(date.getTime()) : new Date() //设定目标日期默认值为当前当前日期 let year = Number(data.getFullYear());//目标日当前年 let month = Number(data.getMonth()) + 1;//目标日当前月 let day = Number(data.getDate()); //目标日当天 let ed = new Date(); let st = new Date(); let begined = new Date(); let beginst = new Date(); let mydate = new Date(year, month - 1, day);//目标日凌晨00:00 let weekday = mydate.getDay() == 0 ? 7 : mydate.getDay(); //目标日是本周的第几天 ed = date ? new Date(date.getTime() - oneDay * weekday - oneDay * 7 * (m - 1)) : new Date(Date.now() - oneDay * weekday - oneDay * 7 * (m - 1))//获取目标日前m周周日的时间戳 st = new Date(ed.getTime() - oneDay * 6)//获取目标日前m周周一的时间戳 begined = new Date(Date.parse(Number(ed.getFullYear()) + ' ' + Number(ed.getMonth() + 1) + ' ' + Number(ed.getDate())) + oneDay - 1);//对应周日23:59:59 beginst = new Date(Date.parse(Number(st.getFullYear()) + ' ' + Number(st.getMonth() + 1) + ' ' + Number(st.getDate())));//对应周周一00:00:00 resultDate = [beginst, begined] return resultDate; } 复制代码 三.获取某天对应周周一,获取两天是不是一天 function tmonday(dtm) { let dte = new Date(dtm); let day = dte.getDay(); let dty = dte.getDate(); if (day === 0) { day = 7; } dte.setDate(dty - day + 1); return dte.getFullYear() + '-' + dte.getMonth() + '-' + dte.getDate(); } function iSameWeek(date1, date2) { let dt1 = new Date(); dt1.setTime(date1); let dt2 = new Date(); dt2.setTime(date2); let md1 = tmonday(dt1); let md2 = tmonday(dt2); return md1 === md2; } 复制代码 四.获取某年(2022)到今天所有年,对应年所有月,对应月所有周(以每月第一周开始为第一周,每月最后一个周一,为最后一个周并补齐) //获取本月天数 function getallmonthdate(year, month, hasadd = true) { if (!hasadd) { month = parseInt(month) + 1; } let temp = new Date(year, month, 0) console.log(temp) return temp.getDate() } //获取本月第一个周一 function getFirstMondayInMonth(year, month) { let allmonth = getallmonthdate(year, month) for (let i = 1; i = 1; i--) { //生成对应的date判断是不是周一 let today = new Date(year, month - 1, i) if (today.getDay() == 1) { return today } } } //补齐一周 function get4Week(date) { return GetPreWeek(0, date) } function getbigernum(num) { let bigernumobj = { 1: '一', 2: '二', 3: '三', 4: '四', 5: '五' }; return bigernumobj[num] } function inityeararr(date?: Date) { let yeararr = []; //获取当前年月日周 let oneDay = 24 * 3600 * 1000;//一天的ms //获取前一周的周日 let preonesunday = GetPreWeek(1)[1] let data = new Date(preonesunday.getTime())//设定截止日期 let year = Number(data.getFullYear());//目标截止年 let month = Number(data.getMonth()) + 1;//目标截止月 let day = Number(data.getDate()); //目标截止日 for (let i = 2020; i


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有