这些都是本人在一些项目中应用到的一些关于时间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);
}