formatDate处理时间格式化【全局引入】

main.js引入

import formatDate from './common/formatDate.js';//formatDate
Vue.prototype.formatDate = formatDate;

新建formatDate.js

// 处理 MM-dd hh:mm:ss 只输入一位时的处理方法
// 例如: 期望返回 yyyy-MM-dd hh:mm:ss 的格式   但是给定的时间为: 2019-4-4 12:4:4
function padLeftZero(str){
	return ('00' + str).substr(str.length);
}
// date: 给定的时间戳
// fmt: 期望的输出格式

const formatDate = (date,fmt)=>{
	let _date = new Date(date)
	// 处理年份
	// 正则y+ 匹配一个或多个y
	if(/(y+)/.test(fmt)){
		// 使用.replace() 替换 RegExp.$1 匹配到的值为 date.getFullYear
		// .substr() 截取 RegExp.$1 匹配到的 长度
		// 例如:通过/(y+).test(fmt)匹配到RegExp.$1的值为 yyy 则替换 yyy.replace('yyy',(2019 + ' ').substr(1)) 结果为: 019 
		fmt = fmt.replace(RegExp.$1,(date.getFullYear()+"").substr(4-RegExp.$1.lenght))
	}
	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.lenght===1)? str : padLeftZero(str))
		}
	}
	return fmt
}

export default formatDate;

调用

this.formatDate(new Date(),'yyyy-MM-dd');
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值