900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > vue js 封装方法获取当前时间(年月日时分秒)格式

vue js 封装方法获取当前时间(年月日时分秒)格式

时间:2023-05-13 23:17:02

相关推荐

vue js 封装方法获取当前时间(年月日时分秒)格式

方法获取格式化时间函数

formatDate (fmt) {const date = new Date()const o = {'Y+': date.getFullYear(),'M+': date.getMonth() + 1, // 月'D+': date.getDate(), // 日'h+': date.getHours(), // 时'm+': date.getMinutes(), // 分's+': date.getSeconds(), // 秒W: date.getDay() // 周}for (let k in o) {if (new RegExp('(' + k + ')').test(fmt)) {fmt = fmt.replace(RegExp.$1, () => {if (k === 'W') {// 星期几const week = ['日', '一', '二', '三', '四', '五', '六']return week[o[k]]} else if (k === 'Y+' || RegExp.$1.length === 1) {// 年份 or 小于10不加0return o[k]} else {return ('00' + o[k]).substr(('' + o[k]).length) // 小于10补位0}})}}return fmt}

使用

formatDate('YY') // formatDate('YY-MM')// -06formatDate('YY-MM-DD')// -06-02formatDate('YY-MM-DD hh:mm:ss')// -06-02 10:02:23formatDate('星期W')// 星期四

扩展:

1.得到当前(年月日)

getNowMonths() {let timeOne = new Date();let year = timeOne.getFullYear();let month = timeOne.getMonth() + 1;let day = timeOne.getDate();month = month < 10 ? "0" + month : month;day = day < 10 ? "0" + day : day;const NOW_MONTHS_AGO = `${year}-${month}-${day}`;return NOW_MONTHS_AGO;}

2.得到三个月前的(年月日)

getThreeMonths() {let timeOne = new Date();let year = timeOne.getFullYear();let month = timeOne.getMonth() + 1;let day = timeOne.getDate();// 计算3个月后的月份let ThreeMonths = month - 3;// 如果小于 0 说明是去年if (ThreeMonths <= 0) {year = year - 1;}// 如果 等于 -2 说明当前月是 1 月份 所以三个月前是去年 10月if (ThreeMonths === -2) {ThreeMonths = 10;}// 如果 等于 -1 说明当前月是 2 月份 所以三个月前是去年 11月if (ThreeMonths === -1) {ThreeMonths = 11;}// 如果 等于 0 说明当前月是 3 月份 所以三个月前是去年 12月if (ThreeMonths === 0) {ThreeMonths = 12;}ThreeMonths = ThreeMonths < 10 ? "0" + ThreeMonths : ThreeMonths;// 获取当前的时间的日期字符串// **如果天数的值为零,则默认返回当前月份的最后一天let timeTow = new Date(year, ThreeMonths, 0);// 获取三个月前的最后一天let ThreeMonthsDay = timeTow.getDate();// 判断如果当前月份的天数大于三个月前的天数时,则当前天数等于三个月前的天数if (day > ThreeMonthsDay) {day = ThreeMonthsDay;}day = day < 10 ? "0" + day : day;// 格式化时间// const THREE_MONTHS_AGO = `${year}/${ThreeMonths}/${day}`// 生成时间戳 需要的话做//const THREE_STAMP = new Date(THREE_MONTHS_AGO).getTime()const THREE_STAMP = `${year}-${ThreeMonths}-${day}`;return THREE_STAMP;},

进阶版封装方法

function getDate(type = null, number = 0) {var nowdate = new Date();switch (type) {case "day": //取number天前、后的时间nowdate.setTime(nowdate.getTime() + 24 * 3600 * 1000 * number);var y = nowdate.getFullYear();var m = nowdate.getMonth() + 1;var d = nowdate.getDate();var retrundate = `${y}-${m}-${d}`;break;case "week": //取number周前、后的时间var weekdate = new Date(nowdate + 7 * 24 * 3600 * 1000 * number);var y = weekdate.getFullYear();var m = weekdate.getMonth() + 1;var d = weekdate.getDate();var retrundate = `${y}-${m}-${d}`;break;case "month": //取number月前、后的时间nowdate.setMonth(nowdate.getMonth() + number);var y = nowdate.getFullYear();var m = nowdate.getMonth() + 1;var d = nowdate.getDate();var retrundate = `${y}-${m}-${d}`;break;case "year": //取number年前、后的时间nowdate.setFullYear(nowdate.getFullYear() + number);var y = nowdate.getFullYear();var m = nowdate.getMonth() + 1;var d = nowdate.getDate();var retrundate = `${y}-${m}-${d}`;break;default: //取当前时间var y = nowdate.getFullYear();var m = nowdate.getMonth() + 1;var d = nowdate.getDate();var retrundate = `${y}-${m}-${d}`;}return retrundate;}

测试

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