最近项目中使用到moment插件,但是小编还从来没有使用过,但闲来没事就研究了一下源码,就简单的写个小例子,供大家参考。
function formate(params, time) {
const date = !!time ? new Date(time) : new Date()
const Y = date.getFullYear().toString()
let month = date.getMonth() + 1
const M = (month < 10 ? '0' + month : month).toString()
const days = date.getDate()
const D = (days < 10 ? '0' + days : days).toString()
const hour = date.getHours()
const H = (hour < 10 ? '0' + hour : hour).toString()
const mm =
date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()
const ss =
date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds()
let aa = ''
switch (true) {
case parseFloat(H) >= 5 && parseFloat(H) < 8:
aa = '凌晨'
break
case parseFloat(H) >= 8 && parseFloat(H) < 12:
aa = '上午'
break
case parseFloat(H) >= 12 && parseFloat(H) < 18:
aa = '下午'
break
case parseFloat(H) >= 18 && parseFloat(H) < 22:
aa = '晚上'
break
case (parseFloat(H) >= 22 && parseFloat(H) < 24) ||
(parseFloat(H) >= 0 && parseFloat(H) < 5):
aa = '半夜'
break
}
return params
.replace(/YYYY/, Y)
.replace(/YY/, Y.slice(2))
.replace(/MM/, M)
.replace(/DD/, D)
.replace(/hh/, H)
.replace(/mm/, mm)
.replace(/ss/, ss)
.replace(/a/, aa)
}
@params params 日期格式
@params time 日期
formate("YYYY") // 2019
formate("MM-DD") // 11-04
formate("YYYY-MM-DD") // 2019-11-04
formate("YYYY/MM/DD",'2018-04-03') //2018/04/03