Javascript 转Date对象为字符串实现函数

  • 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