实现日期格式化
最近项目中使用到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