js日期格式化小技巧
1. 接收参数:
- 需要格式化的日期string;
- format 格式信息
2. 转换传入的日期格式并设置格式化format config并赋值;
3. 分解format格式化所需信息并用 formatConfigs 保存
4. 遍历 formatConfig 并将 config 中信息赋值到format中
5. 导出format;
上代码:↓↓↓
1 const formatDate = (oldDate, format = 'yyyy-MM-dd HH:mm:ss') => { 2 const date = new Date(oldDate) 3 const config = { 4 yyyy: date.getFullYear(), 5 M: date.getMonth() + 1, 6 MM: formatNum(date.getMonth() + 1), 7 W: date.getDay(), 8 WW: formatNum(date.getDay()), 9 d: date.getDate(), 10 dd: formatNum(date.getDate()), 11 H: date.getHours(), 12 HH: formatNum(date.getHours()), 13 h: date.getHours() > 12 ? (date.getHours() - 12) : date.getHours(), 14 hh: formatNum(date.getHours()) > 12 ? (formatNum(date.getHours()) - 12) : formatNum(date.getHours()), 15 m: date.getMinutes(), 16 mm: formatNum(date.getMinutes()), 17 s: date.getSeconds(), 18 ss: formatNum(date.getSeconds()), 19 A: date.getHours() <= 12 ? 'AM' : 'PM', 20 a: date.getHours() <= 12 ? 'am' : 'pm' 21 } 22 const formatConfigs = format.match(/[a-zA-Z]+/g) 23 formatConfigs.forEach(item => { 24 format = format.replace(item, config[item]) 25 }) 26 return format 27 } 28 function formatNum(num) { 29 return num < 10 ? `0${num}` : num 30 } 31 export { 32 formatDate 33 }
个人征集的比较好用的日期格式化方法,如有其它见解,欢迎留言!!!
标签:12,格式化,format,getHours,formatNum,js,日期,date From: https://www.cnblogs.com/xyliumc/p/16658532.html