var newDate =function (data,fmt) { if(!data) return ""; var timeStr = new Date(parseInt(data)); var fmt = fmt || "yyyy-MM-dd hh:mm:ss"; var o = { "M+": timeStr.getMonth() + 1, //月份 "d+": timeStr.getDate(), //日 "h+": timeStr.getHours(), //小时 "m+": timeStr.getMinutes(), //分 "s+": timeStr.getSeconds(), //秒 "q+": Math.floor((timeStr.getMonth() + 3) / 3), //季度 "S": timeStr.getMilliseconds() //毫秒 }; // 如果 fmt 中有y,fmt中y替换为timeStr.getFullYear(),例: // yyyy-MM-dd hh:mm:ss 替换为 2018-MM-dd hh:mm:ss // yy-MM-dd hh:mm:ss 替换为 18-MM-dd hh:mm:ss if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (timeStr.getFullYear() + "").substr(4 - RegExp.$1.length)); // 下面循环原理同上 for (var k in o) if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); return fmt; } console.log(newDate("1525573091550")); // 2018-05-06 10:18:11 console.log(newDate("1525573091550","yyyy年MM月dd日 hh时mm分ss秒")); // 2018年05月06日 10时18分11秒
如有表述不准确之处,欢迎指正,欢迎补充,感谢阅读。