1. 程式人生 > 實用技巧 >日期格式化函式-將日期轉換為想要的格式

日期格式化函式-將日期轉換為想要的格式

使用說明:

/** *日期格式化函式 *@param{ Date | string | number } time 日期原資料 *@param{ string }format時間格式
*@param{ boolean }use12HourClock是否使用12小時進位制
*@return { string } */ 示例:    letdate=newDate(); letnewDate=formatTime(date,'yyyy-MM-dd-d\\\\HH:H*mm-ms');
yyyy 年份 HH 小時
yy 年份後兩位 H 小時
MM 月份 mm 分(個位帶0)
cM 中文月份 s
eM 英文月份 ss 秒(個位帶0)
M 月份(個位帶0) m
dd ms 毫秒
d 日(個位帶0) w 星期
et AM/ PM ct 上午/下午
 1     function formatTime(time, format, use12HourClock) {
 2         debugger
 3         if (!time || !format) {
 4             return '';
 5         }
 6         // 判斷傳入time是否為時間物件, 非時間物件則將其轉化
7 if (Object.prototype.toString.call(time) !== '[object Date]') { 8 time = new Date(time); 9 } 10 const map = {}; 11 map.i = !0; 12 map.r = /\byyyy|yy|MM|cM|eM|M|dd|d|HH|H|mm|ms|ss|m|s|w|ct|et\b/g; 13 14 const $12cc = ['上午', '下午']; 15 const $12ec = ['A.M.', 'P.M.'];
16 const week = ['日', '一', '二', '三', '四', '五', '六']; 17 const monthZh = ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二']; 18 const monthEn = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sept', 'Oct', 'Nov', 'Dec']; 19 20 map.yyyy = time.getFullYear(); 21 map.yy = (`${map.yyyy}`).substr(2); 22 23 map.M = time.getMonth() + 1; 24 map.MM = ((parseInt(map.M, 10) || 0) < 10 ? '0' : '') + parseInt(map.M, 10) || 0; 25 map.eM = monthEn[map.M - 1]; 26 map.cM = monthZh[map.M - 1]; 27 28 map.d = time.getDate(); 29 map.dd = ((parseInt(map.d, 10) || 0) < 10 ? '0' : '') + parseInt(map.d, 10) || 0; 30 31 map.H = time.getHours(); 32 map.HH = ((parseInt(map.H, 10) || 0) < 10 ? '0' : '') + parseInt(map.H, 10) || 0; 33 34 map.m = time.getMinutes(); 35 map.mm = ((parseInt(map.m, 10) || 0) < 10 ? '0' : '') + parseInt(map.m, 10) || 0; 36 37 map.s = time.getSeconds(); 38 map.ss = ((parseInt(map.s, 10) || 0) < 10 ? '0' : '') + parseInt(map.s, 10) || 0; 39 40 map.ms = time.getMilliseconds(); 41 42 map.w = week[time.getDay()]; 43 44 const am = map.H < 12 ? 0 : 1; 45 map.ct = $12cc[am]; 46 map.et = $12ec[am]; 47 if (use12HourClock) { 48 map.H %= 12; 49 } 50 return format.replace(map.r, ($1) => { 51 const result = map[map.i ? $1 : $1.toLowerCase()]; 52 return result == null ? $1 : result; 53 }) 54 };