700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > js处理时间格式(时间格式化 获取上个月或者下个月日期 获取上周日期 获取指定日期

js处理时间格式(时间格式化 获取上个月或者下个月日期 获取上周日期 获取指定日期

时间:2022-08-19 22:16:47

相关推荐

js处理时间格式(时间格式化 获取上个月或者下个月日期 获取上周日期 获取指定日期

js+vue处理各种时间格式(时间格式化、获取上个月或者下个月日期、获取上周日期、获取指定日期的前一天后一天)

首先引入了一个好用的时间插件

npm install dayjs --save

在需要的页面引入

import dayjs from 'dayjs';

// 时间戳 格式化

export function formatDate(time) {if (time) {const date = new Date(time);const Y = `${date.getFullYear()}-`;const M = `${date.getMonth() + 1 < 10 ? `0${date.getMonth() + 1}` : date.getMonth() + 1}-`;const D = `${date.getDate() < 10 ? `0${date.getDate()}` : date.getDate()} `;const h = `${date.getHours() < 10 ? `0${date.getHours()}` : date.getHours()}:`;const m = `${date.getMinutes() < 10 ? `0${date.getMinutes()}` : date.getMinutes()}:`;const s = (date.getSeconds() < 10 ? `0${date.getSeconds()}` : date.getSeconds());return Y + M + D + h + m + s;// return Y + M + D + h + '00:00'}return time;}

//获取上周一到上周日 列表

//@date 格式为日期格式 返回格式为 yyyy-mm-dd的日期的数组,如:['-01-25']export function getProWeekList(date) {var dateTime = date.getTime(); // 获取现在的时间var dateDay = date.getDay();dateDay = dateDay===0 ? dateDay+7 : dateDay //这里当为0的时候为周日要加7,否则算下来还是本周var oneDayTime = 24 * 60 * 60 * 1000;var proWeekList = [];for (var i = 0; i < 7; i++) {var time = dateTime - (dateDay + (7 - 1 - i)) * oneDayTime;proWeekList[i] = dayjs(time).format('YYYY-MM-DD'); //date格式转换为yyyy-mm-dd格式的字符串}return proWeekList;}

//获取上周一和上周日

const Date1 = new Date();const weekList = getProWeekList(Date1);const beforeWeekStart = weekList[0]; //当前天的上周的周一const beforeWeekEnd = weekList[6]; //当前天的上周的周日

//获取上一个月第一天到最后一天

const curDay = dayjs().format('YYYY-MM-DD'); //当前天 比如-07-15const beforeMonth = getPreMonth(curDay); //当前天的上个月const beforeStart = dayjs(beforeMonth).startOf('month').format('YYYY-MM-DD'); //当前天的上个月的一号const beforeEnd = dayjs(beforeMonth).endOf('month').format('YYYY-MM-DD'); //当前天的上个月的最后一天this.monthDate = `${beforeStart}-${beforeEnd}`;

//获取上一个月日期

//@date 格式为yyyy-mm-dd的日期,如:-01-25export function getPreMonth(date) {const arr = date.split('-');const year = arr[0]; // 获取当前日期的年份const month = arr[1]; // 获取当前日期的月份const day = arr[2]; // 获取当前日期的日let days = new Date(year, month, 0);days = days.getDate(); // 获取当前日期中月的天数let year2 = year;let month2 = parseInt(month) - 1;if (month2 == 0) {year2 = parseInt(year2) - 1;month2 = 12;}let day2 = day;let days2 = new Date(year2, month2, 0);days2 = days2.getDate();if (day2 > days2) {day2 = days2;}if (month2 < 10) {month2 = `0${month2}`;}const t2 = `${year2}-${month2}-${day2}`;return t2;}

//获取下一个月日期

//@date 格式为yyyy-mm-dd的日期,如:-01-25export function getNextMonth(date) {const arr = date.split('-');const year = arr[0]; // 获取当前日期的年份const month = arr[1]; // 获取当前日期的月份const day = arr[2]; // 获取当前日期的日let days = new Date(year, month, 0);days = days.getDate(); // 获取当前日期中的月的天数let year2 = year;let month2 = parseInt(month) + 1;if (month2 == 13) {year2 = parseInt(year2) + 1;month2 = 1;}let day2 = day;let days2 = new Date(year2, month2, 0);days2 = days2.getDate();if (day2 > days2) {day2 = days2;}if (month2 < 10) {month2 = `0${month2}`;}const t2 = `${year2}-${month2}-${day2}`;return t2;}

//获取获取上3个月

//@date 格式为yyyy-mm-dd的日期,如:-01-25export function getLastThreeMonth() {const now = new Date();const year = now.getFullYear();let month = now.getMonth() + 1;// 0-11表示1-12月let day = now.getDate();const dateObj = {};if (parseInt(month) < 10) {month = `0${month}`;}if (parseInt(day) < 10) {day = `0${day}`;}dateObj.now = `${year}-${month}-${day}`;if (parseInt(month) == 1) {// 如果是1月份,则取上一年的10月份dateObj.last = `${parseInt(year) - 1}-10-${day}`;return dateObj;}if (parseInt(month) == 2) {// 如果是2月份,则取上一年的11月份dateObj.last = `${parseInt(year) - 1}-11-${day}`;return dateObj;}if (parseInt(month) == 3) {// 如果是3月份,则取上一年的12月份dateObj.last = `${parseInt(year) - 1}-12-${day}`;return dateObj;}const preSize = new Date(year, parseInt(month) - 3, 0).getDate();// 开始时间所在月的总天数if (preSize < parseInt(day)) {// 开始时间所在月的总天数<本月总天数,比如当前是5月30日,在2月中没有30,则取下个月的第一天(3月1日)为开始时间const resultMonth = parseInt(month) - 2 < 10 ? (`0${parseInt(month)}` - 2) : (parseInt(month) - 2);dateObj.last = `${year}-${resultMonth}-01`;return dateObj;}if (parseInt(month) <= 10) {dateObj.last = `${year}-0${parseInt(month) - 3}-${day}`;return dateObj;}dateObj.last = `${year}-${parseInt(month) - 3}-${day}`;return dateObj;}

// JS获取指定日期的前一天,后一天

export function getNextDate(date, day) {const dd = new Date(date);dd.setDate(dd.getDate() + day);const y = dd.getFullYear();const m = dd.getMonth() + 1 < 10 ? `0${dd.getMonth() + 1}` : dd.getMonth() + 1;const d = dd.getDate() < 10 ? `0${dd.getDate()}` : dd.getDate();return `${y}-${m}-${d}`;}

// 获取开始和结束时间得到中间所有天

// 获取间隔天数export function getDays(day1, day2) {// 获取入参字符串形式日期的Date型日期let st = day1.getDate();const et = day2.getDate();const retArr = [];// 获取开始日期的年,月,日const yyyy = st.getFullYear();const mm = st.getMonth();let dd = st.getDate();// 循环while (st.getTime() != et.getTime()) {retArr.push(st.getYMD());// 使用dd++进行天数的自增st = new Date(yyyy, mm, dd++);}// 将结束日期的天放进数组retArr.push(et.getYMD());return retArr;// console.log(retArr); // 或可换为return ret;}

js处理时间格式(时间格式化 获取上个月或者下个月日期 获取上周日期 获取指定日期的前一天后一天)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。