JS格式化时间戳(ES6)

用法 : 1.dateTime 格式化进间戳 10位 或 13位, 格式化字符YMD hms 对应 年月日 点分秒 2.dateObject 返回 一个包括YMD hms属性的对象 3.dateDays 根据 传入的 年和月 ,返回 这个月的天数 //格式化时间戳 dateTime(); //2019-01-04 11:34:27 dateTime(1580400000000);//1580400000000 2020/1/31 上午12:00:00 dateTime(1580400000000 ,'Y年M月D日/ h点m分s秒') //2019年01月04日/ 11点36分00秒 //指定月份的天数 dateDays(2020,2); // 29 //日期的年月日 时分秒 dateObject(1580400000000); // { Y:2020, M:1, D:31, h:', m:1, s:2} const notNumber = v => typeof v !== "number"; const isTimeStamp = s => { if (isNaN(s)) { console.error('时间戳必须是Number') return false } switch (String(s).length) { case 10: { return s * 1000 } case 13: { return s } default: { console.error('只能格式化10,13位时间戳') return false } } } const dateTime = (s, f = 'Y-M-D h:m:s') => { const scheme = dateObject(s) if (scheme === false) return false return f.replace(/[YMDhms]/g, function(m) { const val = `0${scheme[m]}` return val.length === 2 ? val : scheme[m] }) } const dateObject = (s = Date.now()) => { s = isTimeStamp(Number(s)) if (s === false) return false const date = new Date(s) return { Y: date.getFullYear(), M: date.getMonth() + 1, D: date.getDate(), h: date.getHours(), m: date.getMinutes(), s: date.getSeconds() } } const dateDays = (y, m) => { if (notNumber(y)) { console.error(`年必须为number`) return false } if (notNumber(m)) { console.error(`月必须为number`) return false } if (m % 12 === 0) { y += 1 m = 1 } return new Date(y, m, 0).getDate() }

本文章由javascript技术分享原创和收集

发表评论 (审核通过后显示评论):

昵称:
邮箱:
内容: