mstf-kit
Version:
一个现代化的 JavaScript/TypeScript 工具库,提供了丰富的常用工具函数
75 lines (74 loc) • 2.39 kB
JavaScript
function formatDate(date, format = "YYYY-MM-DD HH:mm:ss") {
const d = new Date(date);
const year = d.getFullYear();
const month = String(d.getMonth() + 1).padStart(2, "0");
const day = String(d.getDate()).padStart(2, "0");
const hours = String(d.getHours()).padStart(2, "0");
const minutes = String(d.getMinutes()).padStart(2, "0");
const seconds = String(d.getSeconds()).padStart(2, "0");
return format.replace("YYYY", String(year)).replace("MM", month).replace("DD", day).replace("HH", hours).replace("mm", minutes).replace("ss", seconds);
}
function getRelativeTime(date, now = /* @__PURE__ */ new Date()) {
const d = new Date(date);
const diff = now.getTime() - d.getTime();
const seconds = Math.floor(diff / 1e3);
const minutes = Math.floor(seconds / 60);
const hours = Math.floor(minutes / 60);
const days = Math.floor(hours / 24);
const months = Math.floor(days / 30);
const years = Math.floor(months / 12);
if (years > 0) return `${years}年前`;
if (months > 0) return `${months}个月前`;
if (days > 0) return `${days}天前`;
if (hours > 0) return `${hours}小时前`;
if (minutes > 0) return `${minutes}分钟前`;
if (seconds > 0) return `${seconds}秒前`;
return "刚刚";
}
function getDateRange(start, end) {
const dates = [];
const startDate = new Date(start);
const endDate = new Date(end);
let currentDate = startDate;
while (currentDate <= endDate) {
dates.push(new Date(currentDate));
currentDate.setDate(currentDate.getDate() + 1);
}
return dates;
}
function addTime(date, amount, unit) {
const d = new Date(date);
switch (unit) {
case "years":
d.setFullYear(d.getFullYear() + amount);
break;
case "months":
d.setMonth(d.getMonth() + amount);
break;
case "days":
d.setDate(d.getDate() + amount);
break;
case "hours":
d.setHours(d.getHours() + amount);
break;
case "minutes":
d.setMinutes(d.getMinutes() + amount);
break;
case "seconds":
d.setSeconds(d.getSeconds() + amount);
break;
}
return d;
}
function isSameDay(date1, date2) {
const d1 = new Date(date1);
const d2 = new Date(date2);
return d1.getFullYear() === d2.getFullYear() && d1.getMonth() === d2.getMonth() && d1.getDate() === d2.getDate();
}
export {
addTime,
formatDate,
getDateRange,
getRelativeTime,
isSameDay
};