js 日期处理工具类

日期处理工具类

/**************************************时间格式化处理************************************/


/**
 * @param dateStr 字符串格式为 2017-02-10 18:20:30
 * 注意:此处月、日、时分秒、必须为2位数字,否则报错
 * @returns 时间戳
 */
getTimestamp = (dateStr) => {
    return Date.parse(new Date(dateStr));
};

/**
 * @param fmt  时间格式 ("yyyy-MM-dd"、"yyyy-MM-dd HH:mm:ss")
 * @param date  Date()
 * @returns 对应的时间格式 2014-04-01 、2014-01-01 01:20:20
 */
dateFmt = (fmt = "yyyy-MM-dd", date = new Date()) => {
    let dateType = {
        "M+": date.getMonth() + 1,                 //月份
        "d+": date.getDate(),                    //日
        "H+": date.getHours(),                   //小时
        "m+": date.getMinutes(),                 //分
        "s+": date.getSeconds(),                 //秒
        "q+": Math.floor((date.getMonth() + 3) / 3), //季度
        "S": date.getMilliseconds()             //毫秒
    };
    if (/(y+)/.test(fmt)) {
        fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "")
            .substr(4 - RegExp.$1.length));
    }
    for (let k in dateType)
        if (new RegExp("(" + k + ")").test(fmt))
            fmt = fmt.replace(RegExp.$1, (1 === RegExp.$1.length) ?
                (dateType[k]) : (("00" + dateType[k]).substr(("" + dateType[k]).length)));
    return fmt;
};
/**
 * @param date Date()
 * @returns  true/false 是否是昨天
 */
isYesterday = (date = new Date()) => {
    let currentDate = (new Date());//当前时间
    let today = new Date(currentDate.getFullYear(), currentDate.getMonth(), currentDate.getDate()).getTime(); //今天凌晨
    let yesterday = new Date(today - 24 * 3600 * 1000).getTime();
    return (date.getTime() < today && yesterday <= date.getTime());
};
/**
 * @param date Date()
 * @returns  true/false 是否是今天
 */
isToday = (date = new Date()) => {
    return (new Date().toDateString() === date.toDateString());
};
/**
 * @param date Date()
 * @returns  true/false 是否是今年
 */
isToYear = (date = new Date()) => {
    return (new Date().getYear() === date.getYear());
};

/**
 * @param date Date()
 * @returns 最近的时间日期 (20分钟前、11:43、昨天11:14、11-14 11:20 、2017-11-14 11:20)
 */
getRecentDate = (date = new Date()) => {
    if (isToday(date)) {//当天
        let temp = (new Date().getTime() - date.getTime) / 1000 / 60;
        return temp <= 59 ? `${Math.ceil(temp))}分钟前` : dateFmt("HH:mm", date);
    } else if (isYesterday(date)) {//昨天
        return `昨天${dateFmt("HH:mm", date)}`;
    } else if (isToYear(date)) {//今年
        return dateFmt("MM-dd HH:mm", date);
    } else {//其他
        return dateFmt("yyyy-MM-dd HH:mm", date)
    }
};

export default {
    isYesterday,
    isToday,
    isToYear,
    dateFmt,
    getRecentDate,
    getTimestamp,
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值