时间格式化

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;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值