最近做vue相关的项目,用到了后台返回的时间,因为后台返回的时间都是时间戳格式,加上项目中多次用到了时间的不同格式的显示,为此自行封装了关于时间戳转换时间格式的方法,可能有待优化,但对于新手都是可以理解的,不足之处还望各位大佬指正。
言归正传,封装方法考虑的就是参数的问题,根据参数执行方法,直接上代码,不懂的可以看注释。
<script>
/*
*@param {时间戳} timestamp
*@param {转换的格式} typedef
*@param {连接符} concat
*/
//时间格式的封装 如将2019-5-6 11:8:34变成2019/5/6 11:08:34或者变成2019-5等等你想要的时间格式
function formatTime(timestamp, typedef = "YY|MM|DD", concat = ".") {
let time
if (typeof timestamp === "string") {
time = Number(timestamp)
} else {
time = timestamp
}
if (time) {
let data = new Date(time)
let Year = data.getFullYear() //获取年
let Month = data.getMonth() + 1 //获取月
let Day = data.getDate() //获取日
let Hour = data.getHours() //获取时
let Min = data.getMinutes() //获取分
let Secon = data.getSeconds() //获取秒
//不大于10补零操作
Month = add0(Month)
Day = add0(Day)
Hour = add0(Hour)
Min = add0(Min)
Secon = add0(Secon)
let newTime = ''
if (typedef === "YY|MM|DD HH:MM:SS") {
newTime = '' + Year + concat + Month + concat + Day + ' ' + Hour + ':' + Min + ':' + Secon
} else if (typedef === "YY|MM|DD HH:MM") {
newTime = '' + Year + concat + Month + concat + Day + '' + Hour + ':' + Min
} else if (typedef === "YY|MM|DD") {
newTime = '' + Year + concat + Month + concat + Day
} else if (typedef === "YY|MM") {
newTime = '' + Year + concat + Month
} else if (typedef === "MM|DD") {
newTime = '' + Month + concat + Day
} else if (typedef === "YY") {
newTime = '' + Year
} else if (typedef === "MM") {
newTime = '' + Month
} else if (typedef === "DD") {
newTime = '' + Day
}
return newTime
}
}
//补零
function add0(time) {
return time > 10 ? time : '0' + time
}
//检验代码
console.log(formatTime("1564804053345", "YY|MM|DD HH:MM:SS", "-")) //2019-08-03 11:47:33
console.log(formatTime("1564804053345", "YY|MM", "/")) //2019/08
console.log(formatTime(1564804053345, "YY|MM", "-")) //2019-08
</script>
使用的时候只需参照参数格式调用方法即可(调用之前确保你的传入的时间格式是时间戳,可以是字符串可以是数字(毫秒))然后就可以转成你想要的时间格式啦!在vue项目中的话直接在main.js中,然后导入到全局中,在任何地方都可以使用啦。
完结
好了,如果你觉得有用的话麻烦评论个1,有不懂的地方我们可以一起交流学习。