1、时间格式化
export const formatDate = (date, fmt) => {
date = date || new Date();
fmt = fmt || 'yyyy-MM-dd hh:mm:ss';
if (Object.prototype.toString.call(date).slice(8, -1) !== 'Date') {
date = new Date(date)
}
if (/(y+)/.test(fmt)) {
fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
}
let o = {
'M+': date.getMonth() + 1,
'd+': date.getDate(),
'h+': date.getHours(),
'm+': date.getMinutes(),
's+': date.getSeconds()
}
for (let k in o) {
if (new RegExp(`(${k})`).test(fmt)) {
let str = o[k] + ''
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : (("00" +
o[k]).substr(("" + o[k]).length)))
}
}
return fmt
}
2、获取当前的日、月、年具体时间
/**
* 获取当前日、月、年开始时间
* @param {*} type 时间类型
*/
export function getCurrStartTime(type) {
let time
if (type == "day") {
time = formatDate(new Date(new Date().getTime()), "yyyy-MM-dd") + " 00:00:00"
} else if (type == "mouth") {
time = formatDate(new Date(new Date().getTime()), "yyyy-MM") + "-01 00:00:00"
} else {
time = formatDate(new Date(new Date().getTime()), "yyyy") + "-01-01 00:00:00"
}
return time
}
/**
* 获取当前日、月、年结束时间
* @param {*} type 时间类型
*/
export function getCurrEndTime(type) {
let time
if (type == "day") {
time = formatDate(new Date(new Date().getTime() + 24 * 60 * 60 * 1000), "yyyy-MM-dd") + " 00:00:00"
} else if (type == "mouth") {
let item = new Date().setMonth(new Date().getMonth() + 1);
time = formatDate(new Date(item), "yyyy-MM") + "-01 00:00:00"
} else {
time = String(Number(formatDate(new Date(new Date().getTime()), "yyyy")) + 1) + "-01-01 00:00:00"
}
return time
}
3、根据传入的时间获取同期时间,昨日、昨月、去年
/**
* 获取同期时间,昨日,昨月,去年
* @param {*} checktime 查询的开始时间
* @param {*} timetype 日、月、年
*/
export function getCheckBeforeTime(checktime,timetype){
let newtiem={}
if(timetype=="day"){
newtiem.fromDate = formatDate(new Date(new Date(checktime).getTime()-24*60*60*1000), "yyyy-MM-dd") + " 00:00:00"
}else if(timetype=="month"){
let item = new Date(checktime).setMonth(new Date(checktime).getMonth() - 1);
let time = formatDate(new Date(item), "yyyy-MM") + "-01 00:00:00"
newtiem.fromDate = time
}else{
let time = String(Number(formatDate(new Date(new Date(checktime).getTime()), "yyyy")) - 1) + "-01-01 00:00:00"
newtiem.fromDate = time
}
newtiem.toDate = checktime
return newtiem
}
4、根据传入的时间,获取去年的今天、去年的今月
/**
* 获取环期时间
* @param {*} checktime_form //传入的开始时间
* @param {*} checktime_to //传入的结束时间
* @param {*} timetype //时间类型
*/
export function getCheckRepeatTime(checktime_form,checktime_to,timetype){ //获取同期时间,昨日,昨月,去年
let newtiem={}
let item = new Date(checktime_form).setFullYear((new Date(checktime_form).getFullYear()-1))
let item_to = new Date(checktime_to).setFullYear((new Date(checktime_to).getFullYear()-1))
let time_from='',time_to=''
if(timetype=="day"){
time_from = formatDate(new Date(item), "yyyy-MM-dd") + " 00:00:00"
time_to = formatDate(new Date(item_to), "yyyy-MM-dd") + " 00:00:00"
}else if(timetype=="month"){
time_from = formatDate(new Date(item), "yyyy-MM") + "-01 00:00:00"
time_to = formatDate(new Date(item_to), "yyyy-MM") + "-01 00:00:00"
}else{
time_from = formatDate(new Date(item), "yyyy") + "-01-01 00:00:00"
time_to = formatDate(new Date(item_to), "yyyy") + "-01-01 00:00:00"
}
newtiem.fromDate = time_from
newtiem.toDate = time_to
return newtiem
}
正则汇总:
手机号:
let zz = /^1\d{10}$/.test("13800138000") //返回true则是
6位数字验证码:
/^\d{6}$/.test(this.yznum)
根据传入的天数,获取几天前的日期
//获取num天前的时间日期, //num是正数表示之后的时间,num负数表示之前的时间,0表示今天
fun_date(num){
var date1 = new Date();
var date2 = new Date(date1);
date2.setDate(date1.getDate() + num);
var time2 = date2.getFullYear() + "-" + (date2.getMonth() + 1) + "-" + date2.getDate();
return time2;
}