
/**
 *  日期转xx之前
 * @param dateStr 日期字符串 eg：2019-12-30T02:14:14.000+0000
 * @return {string}
 **/
export function dateView(dateStr) {
    if (!dateStr) {
        return ''
    }
    if (isNaN(Date.parse(dateStr))) {
        return dateStr
    }
    dateStr = dateStr.replace(/-/g, '/')
    let dateNow = Date.parse(dateStr)

    let mius = Date.now() - dateNow
    let minute = 1000 * 60
    let hour = minute * 60
    let day = hour * 24
    let month = day * 30
    let quarter = month * 3
    let year = quarter * 12
    if (mius < minute) {
        return '刚刚'
    } else if (mius < hour) {
        return Math.floor(mius / minute) + '分钟前'
    } else if (mius < day) {
        return Math.floor(mius / hour) + '小时前'
    } else if (mius < month) {
        return Math.floor(mius / day) + '天前'
    } else if (mius < quarter) {
        return Math.floor(mius / month) + '个月前'
    } else if (mius < year) {
        return Math.floor(mius / quarter) + '季度前'
    } else {
        return Math.floor(mius / year) + '年前'
    }
}

/**
 * 转化为指定格式日期
 * @param date
 * @param format
 * @returns {string}
 */
export function dateFormat(date, format = 'yyyy-MM-dd') {
    if (date) {
        date = date.replace(/-/g, '/')
        date = new Date(Date.parse(date))

        let o = {
            'M+': date.getMonth() + 1, //月份
            'd+': date.getDate(), //日
            'h+': date.getHours(), //小时
            'm+': date.getMinutes(), //分
            's+': date.getSeconds(), //秒
            'S': date.getMilliseconds(), //毫秒
            'q+': Math.floor((date.getMonth() + 3) / 3), //季度
        }

        if (/(y+)/.test(format)) {
            format = format.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
        }
        for (let k in o) {
            if (new RegExp('(' + k + ')').test(format)) {
                format = format.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)))
            }
        }
        return format
    } else {
        return ''
    }
}

/**
 * 手机号中间4位隐藏
 * @param str
 * @returns {string|*}
 */
export function phoneHide(str) {
    if (str) {
        return str.substr(0, 3) + ' **** ' + str.substr(7)
    } else {
        return str
    }
}

/**
 *  日期转（今天、昨天、前天）
 * @param date 日期字符串 eg：2019-12-30T02:14:14.000+0000
 * @return {string}
 **/
export function dateView2(date) {
    date = date.replace(/-/g, '/')
    date = Date.parse(date)

    let tt = new Date(date)
    let days = parseInt((new Date().getTime() - date) / 86400000)
    let today = new Date().getDate()
    let mouth = tt.getMonth() + 1
    let day = tt.getDate()
    let result, offset
    offset = Math.abs(today - day)
    mouth = mouth < 10 ? '0' + mouth : mouth
    day = day < 10 ? '0' + day : day

    if (days < 4 && offset < 4) {
        if (offset === 0) {
            result = '今天'
        } else if (offset === 1) {
            result = '昨天'
        } else if (offset === 2) {
            result = '前天'
        }
    } else {
        result = mouth + '-' + day
    }
    return result
}

/**
 * 时间戳转化为指定格式日期
 * @param val
 * @param format
 * @returns {string}
 */
export function timestampToDate(val, format = 'yyyy-MM-dd') {
    if (val) {
        let date = new Date(val)

        let o = {
            'M+': date.getMonth() + 1, //月份
            'd+': date.getDate(), //日
            'h+': date.getHours(), //小时
            'm+': date.getMinutes(), //分
            's+': date.getSeconds(), //秒
            'S': date.getMilliseconds(), //毫秒
            'q+': Math.floor((date.getMonth() + 3) / 3), //季度
        }

        if (/(y+)/.test(format)) {
            format = format.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
        }
        for (let k in o) {
            if (new RegExp('(' + k + ')').test(format)) {
                format = format.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)))
            }
        }
        return format
    } else {
        return val
    }
}

/**
 * 分转换为人民币
 * @param val
 * @param format
 * @returns {string}
 */
export function minuteToRmb(val) {
    val = val || 0

    return (Number(val) / 100).toFixed(2)
}

/**
 * 分转换为人民币
 * @param val
 * @param format
 * @returns {string}
 */
export function minuteToRmb2(val) {
    val = val || 0

    return Number(val) / 100
}
/**
 * 数字不能大于maxNum
 * @param val
 * @param maxNum
 * @returns {string}
 */
export function maxNum(val,maxNum=999) {
    val = val || 0
    if(val>maxNum){
        return maxNum+'+';
    }else{
        return val;
    }
}
/**
 * 数字不能大于maxNum
 * @param val
 * @param maxNum
 * @returns {string}
 */
export function maxNumInt(val,maxNum=999) {
    val = val || 0
    if(val>maxNum){
        return maxNum+'+';
    }else{
        return parseInt(val);
    }
}