- A+
所属分类:Web前端
转Date对象为字符串实现函数
function formatDate(time, format = "Y-MM-dd HH:mm:ss") { /** 格式化字符说明 Y 年 四位数 示例 2021 y 年 年数后二位 示例 21 M 月 单位数不补0 示例 1 MM 月 单位数补0 示例 01 d 日 单位数不补0 示例 2 dd 日 单位数补0 示例 02 H 小时 24小时制,单位数不补0 示例 3 HH 小时 24小时制,单位数补0 示例 03 h 小时 12小时制,单位数不补0 示例 3 hh 小时 12小时制,单位数补0 示例 03 m 分钟 单位数不补0 示例 4 mm 分钟 单位数补0 示例 04 s 秒 单位数不补0 示例 5 ss 秒 单位数补0 示例 05 */ let date = new Date(time); let yearFull = date.getFullYear().toString(); let yearTwoDigits = yearFull.substr(2, 2); let month = date.getMonth() + 1; //月份是从0开始的,所以要加1 let day = date.getDate(); let hour = date.getHours(); // 24小时制 let hourTwelve = hour % 12; // 12小时制 let min = date.getMinutes(); let sec = date.getSeconds(); let preArr = Array.apply(null, Array(10)).map(function(elem, index) { return "0" + index; }); // 创建一个长度为10的数组 格式为 00 01 02 03,用于给月份,小时,分钟等“补0” let newTime = format .replace(/Y/g, yearFull) .replace(/y/g, yearTwoDigits) .replace(/MM/g, preArr[month] || month) .replace(/M/g, month) .replace(/dd/g, preArr[day] || day) .replace(/d/g, day) .replace(/HH/g, preArr[hour] || hour) .replace(/H/g, hour) .replace(/hh/g, preArr[hourTwelve] || hourTwelve) .replace(/h/g, hourTwelve) .replace(/mm/g, preArr[min] || min) .replace(/m/g, min) .replace(/ss/g, preArr[sec] || sec) .replace(/s/g, sec); return newTime; } // 运行测试 formatDate(new Date().getTime()); // 2021-02-05 10:53:42 formatDate(new Date().getTime(), "Y年M月d日"); // 2021年2月5日 formatDate(new Date().getTime(), "y-MM-dd"); // 21-02-05 let str_datetime = "2021/02/05 09:05:05".replace(/-/g,"/"); formatDate(new Date(str_datetime).getTime(),"今天是Y/MM/dd h:m:s"); //今天是2021-02-05 09:05:05 formatDate(new Date(str_datetime).getTime(), "今天是Y/MM/dd HH:mm:ss"); //今天是2021-02-05 09:05:05