/**
* formatTimeStamp 时间格式化转换
* @param {number} str [时间戳]
* @param {string} format [时间格式,[YY|YYYY]年 [mm|m]月 [dd|d]天 [hh|h]时 [ii|i]分 [ss|s]秒]
* @returns {string} [指定时间格式结果]
*/
export function formatTimeStamp(str, format) {
str = parseInt(str);
var D = false;
if (isNaN(str)) {
D = new Date();
}
else {
D = new Date(str);
}
var ret = '';
if (D && !isNaN(D.getTime())) {
var fullyear = D.getFullYear();
var month = D.getMonth() + 1;
var date = D.getDate();
var hours = D.getHours();
var minute = D.getMinutes();
var second = D.getSeconds();
var doublemonth = month > 9 ? month : '0' + month;
var doubledate = date > 9 ? date : '0' + date;
var doubleyear = fullyear.toString().substr(2);
var doublehours = hours > 9 ? hours : '0' + hours;
var doubleminues = minute > 9 ? minute : '0' + minute;
var doublesecond = second > 9 ? second : '0' + second;
ret = `${format}` || '';
ret = ret.replace(/YYYY/g, fullyear);
ret = ret.replace(/YY/g, doubleyear);
ret = ret.replace(/mm/g, doublemonth);
ret = ret.replace(/m/g, month);
ret = ret.replace(/dd/g, doubledate);
ret = ret.replace(/d/g, date);
ret = ret.replace(/hh/g, doublehours);
ret = ret.replace(/h/g, hours);
ret = ret.replace(/ii/g, doubleminues);
ret = ret.replace(/i/g, minute);
ret = ret.replace(/ss/g, doublesecond);
ret = ret.replace(/s/g, second);
}
return ret;
}
function compter(second,utils,noun) {
let arr = [],
numStr = parseInt(second / utils[0]) < 10 ? `0${parseInt(second / utils[0])}`:parseInt(second / utils[0]);
arr.push(numStr);
let num = second % utils[0];
noun = noun || ' ';
if (num >= 0 && utils.slice(1).length > 0) {
arr.push(compter(num,utils.slice(1),noun));
}
return arr.join(noun);
}
/**
* 倒计时
* @param {number} endTimeStamp 倒计时结束时间戳
* @param {array} noun 分隔符
* @returns {string} 倒计时结果,小时:分:秒
*/
export function countDown(endTimeStamp,noun){
var now = new Date();
var result = null;
if (endTimeStamp && endTimeStamp > now.getTime()) {
var utils = [60 * 60, 60, 1];
var time_diff = parseInt((endTimeStamp - now.getTime()) / 1000);
result = compter(time_diff,utils,noun);
}
return result;
}
let cancheTimeStamp = Date.now();
/**
* 计算代码执行diff时间
* @param {*} label 日志标识
* @param {*} isStar 开始执行时间标记
*/
export function diffTime(label,isStar){
let now = Date.now(),
diff = now - cancheTimeStamp;
!isStar && console.info(`${label} diffTime:${diff}ms`);
cancheTimeStamp = now;
}