/**
* 將評價的時間戳轉換成 yyyy-MM-dd hh:mm 格式
*
* RegExp.$1 代表匹配到的括號裏面的多個值,這裏是yyyy替換成傳入的時間戳中獲取的年份,去替換獲取的 y 的長度,
* (date.getFullYear() + '').substr(4 - RegExp.$1.length) 這部分計算之後就是從 0 開始截取,
* 那就是截取倒了4位完整的年份,如果是 yy 就是兩個那就是從2開始截取就是 17 年, + '' 的作用是將他轉化成字符串的形式
*
* 至於日期之間的連接符我們沒有去匹配,所以不用管還是原來的連接符
*/
export function formatDate(date, fmt) {
if (/(y+)/.test(fmt)) {
fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
}
let o = {
'M+': date.getMonth() + 1,
'd+': date.getDate(),
'h+': date.getHours(),
'm+': date.getMinutes(),
's+': date.getSeconds()
};
for (let k in o) {
if (new RegExp(`(${k})`).test(fmt)) {
let str = o[k] + '';
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : padLeftZero(str));
}
}
return fmt;
};
/**
*
* @param {*} str 代表傳入的參數
* 比如說傳入了 是單位數 9 ,那麼就返回 009,傳入的參數 9 長度是1,然後從第一位開始截取,那就是返回 09
*
* 比如說傳入的是 12 的之類的雙位數,那麼就返回 0012, 參數長度是2,從第二位開始截取,那麼就是 返回 12
*/
function padLeftZero(str) {
return ('00' + str).substr(str.length);
}