vue js 封装方法获取当前时间(年月日时分秒)格式
vue获取格式化时间函数的方法扩展:1.得到当前(年月日)2.得到三个月前的(年月日)
·
方法获取格式化时间函数
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不加0
return o[k]
} else {
return ('00' + o[k]).substr(('' + o[k]).length) // 小于10补位0
}
})
}
}
return fmt
}
使用:
formatDate('YY') // 2022
formatDate('YY-MM') // 2022-06
formatDate('YY-MM-DD') // 2022-06-02
formatDate('YY-MM-DD hh:mm:ss') // 2022-06-02 10:02:23
formatDate('星期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;
}
测试
更多推荐
已为社区贡献6条内容
所有评论(0)