分享一个自己的关于时间的js文件

这些都是本人在一些项目中应用到的一些关于时间js,希望可以帮助到大家,如有不足欢迎大佬补充!

/**
 * 
 * @param {number} settime 截止时间戳 - 当前时间戳
 * @returns 
 */
// 计算倒计时
export const getCountdown = (settime) => {
    let time = new Date(settime);
    if (settime > 0) {
        let day = Math.floor(settime / 1000 / 60 / 60 / 24)
        let month = Math.floor(day / 30)
        let year = Math.floor(month / 12)
        let hour = Math.floor(settime / 1000 / 60 / 60 % 24)
        let minute = Math.floor(settime / 1000 / 60 % 60)
        let second = Math.floor(settime / 1000 % 60)
        let Countdown = {
            year,
            month,
            day,
            hour,
            minute,
            second,
        }
        return Countdown;
    }
}

// 格式化当前时间
export const getCurrnettime = () => {
    let time = new Date();
    let year = time.getFullYear();
    let month = time.getMonth() + 1 < 10 ? '0' + (time.getMonth() + 1) : time.getMonth() + 1;
    let day = time.getDate() < 10 ? '0' + time.getDate() : time.getDate();
    let hour = time.getHours() < 10 ? '0' + time.getHours() : time.getHours();
    let minute = time.getMinutes() < 10 ? '0' + time.getMinutes() : time.getMinutes();
    let second = time.getSeconds() < 10 ? '0' + time.getSeconds() : time.getSeconds();
    let weekday = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];
    let Currnettime = {
        year,
        month,
        day,
        hour,
        minute,
        second,
        weekday: weekday[time.getDay()],
    }
    return Currnettime;
}


// 计算时间进度进度
export const getTimePlan = () => {
    // 日进度
    let todayStartDate = new Date(new Date().toLocaleDateString()).getTime();
    let todayPassHours = (new Date() - todayStartDate) / 1000 / 60 / 60;
    let todayPassHoursPercent = (todayPassHours / 24) * 100;
    // 周进度
    let weeks = [7, 1, 2, 3, 4, 5, 6];
    let weekDay = weeks[new Date().getDay()];
    let weekDayPassPercent = (weekDay / 7) * 100;
    // 月进度
    let year = new Date().getFullYear();
    let date = new Date().getDate();
    let month = new Date().getMonth() + 1;
    let monthAll = new Date(year, month, 0).getDate();
    let monthPassPercent = (date / monthAll) * 100;
    // 年进度
    let yearPass = (month / 12) * 100;

    return {
        // start 进度时间  pass 进度百分比
        day: {
            start: parseInt(todayPassHours),
            pass: parseInt(todayPassHoursPercent),
        },
        week: {
            start: weekDay,
            pass: parseInt(weekDayPassPercent),
        },
        month: {
            start: date,
            pass: parseInt(monthPassPercent),
        },
        year: {
            start: month == 0 ? month : month - 1,
            pass: parseInt(yearPass),
        }
    }
}

// 欢迎提示
export const helloInit = () => {
    let hour = new Date().getHours();
    let hello = null;
    if (hour < 6) {
        hello = "凌晨好";
    } else if (hour < 9) {
        hello = "早上好";
    } else if (hour < 12) {
        hello = "上午好";
    } else if (hour < 14) {
        hello = "中午好";
    } else if (hour < 17) {
        hello = "下午好";
    } else if (hour < 19) {
        hello = "傍晚好";
    } else if (hour < 22) {
        hello = "晚上好";
    } else {
        hello = "夜深了";
    }
    // 这里可以写一些Message之类的消息提示
    console.log(hello);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值