UNPKG

@fast-china/utils

Version:

Fast 工具库.

1 lines 17.2 kB
{"version":3,"file":"index.mjs","sources":["../../../../src/date/index.ts"],"sourcesContent":["import { isNil } from \"lodash-unified\";\n\n/**\n * Date工具类\n */\nexport const dateUtil = {\n\t/**\n\t * 根据当前时间生成问候语\n\t */\n\tgetGreet(): string {\n\t\tconst now = new Date();\n\t\tconst hour = now.getHours();\n\t\tlet greet = \"\";\n\n\t\tif (hour < 5) {\n\t\t\tgreet = \"夜深了,注意身体哦!\";\n\t\t} else if (hour < 9) {\n\t\t\tgreet = \"早上好!\" + \"欢迎回来!\";\n\t\t} else if (hour < 12) {\n\t\t\tgreet = \"上午好!\" + \"欢迎回来!\";\n\t\t} else if (hour < 14) {\n\t\t\tgreet = \"中午好!\" + \"欢迎回来!\";\n\t\t} else if (hour < 18) {\n\t\t\tgreet = \"下午好!\" + \"欢迎回来!\";\n\t\t} else if (hour < 24) {\n\t\t\tgreet = \"晚上好!\" + \"欢迎回来!\";\n\t\t} else {\n\t\t\tgreet = \"您好!\" + \"欢迎回来!\";\n\t\t}\n\t\treturn greet;\n\t},\n\t/**\n\t * 时间处理翻译\n\t */\n\tdateTimeFix(date: number | string | Date | null | undefined): string {\n\t\tif (isNil(date)) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\t// 获取时间戳\n\t\tlet timestamp: number;\n\t\tif (typeof date === \"string\") {\n\t\t\ttimestamp = new Date(date).getTime();\n\t\t} else if (typeof date === \"number\") {\n\t\t\t// 更安全的秒级时间戳判断:小于10位数字认为是秒级\n\t\t\ttimestamp = date.toString().length <= 10 ? date * 1000 : date;\n\t\t} else {\n\t\t\ttimestamp = date.getTime();\n\t\t}\n\n\t\tconst minute = 1000 * 60;\n\t\tconst hour = minute * 60;\n\t\tconst day = hour * 24;\n\n\t\t// 获取当前时间\n\t\tconst curTime = new Date().getTime();\n\t\t// 计算差异\n\t\tconst diffValue = curTime - timestamp;\n\n\t\t// 计算差异时间的量级\n\t\tconst minC = Math.abs(diffValue) / minute;\n\t\tconst hourC = Math.abs(diffValue) / hour;\n\t\tconst dayC = Math.abs(diffValue) / day;\n\n\t\t// 使用Date对象来准确计算月份和年份差异\n\t\tconst curDate = new Date(curTime);\n\t\tconst targetDate = new Date(timestamp);\n\n\t\tconst yearDiff = curDate.getFullYear() - targetDate.getFullYear();\n\t\tconst monthDiff = curDate.getMonth() - targetDate.getMonth();\n\t\tconst totalMonthDiff = yearDiff * 12 + monthDiff;\n\n\t\t// 时间后缀\n\t\tconst suffix = diffValue < 0 ? \"\" : \"\";\n\n\t\t// 计算显示逻辑\n\t\tif (Math.abs(totalMonthDiff) >= 12) {\n\t\t\tconst years = Math.floor(Math.abs(totalMonthDiff) / 12);\n\t\t\treturn `${years}年${suffix}`;\n\t\t} else if (Math.abs(totalMonthDiff) >= 6) {\n\t\t\treturn `半年${suffix}`;\n\t\t} else if (Math.abs(totalMonthDiff) >= 1) {\n\t\t\treturn `${Math.abs(totalMonthDiff)}月${suffix}`;\n\t\t} else if (dayC >= 15) {\n\t\t\treturn `半月${suffix}`;\n\t\t} else if (dayC >= 7) {\n\t\t\tconst weeks = Math.floor(dayC / 7);\n\t\t\treturn `${weeks}周${suffix}`;\n\t\t} else if (dayC >= 1) {\n\t\t\treturn `${Math.floor(dayC)}天${suffix}`;\n\t\t} else if (hourC >= 1) {\n\t\t\treturn `${Math.floor(hourC)}小时${suffix}`;\n\t\t} else if (minC >= 1) {\n\t\t\treturn `${Math.floor(minC)}分钟${suffix}`;\n\t\t}\n\n\t\treturn \"刚刚\";\n\t},\n\t/**\n\t * 获取简单的日期时间\n\t * @returns xxxx-xx-xx 00:00:00\n\t */\n\tgetSimpleTime(): Date {\n\t\tconst start = new Date();\n\t\tstart.setHours(0, 0, 0);\n\t\treturn start;\n\t},\n\t/**\n\t * 获取默认时间\n\t * @param isFuture 是否为未来时间\n\t * @returns [00:00:00, 23:59:59]\n\t */\n\tgetDefaultTime(isFuture = false): [Date, Date] {\n\t\tconst end = new Date();\n\t\tconst start = new Date();\n\t\tif (isFuture) {\n\t\t\tend.setMonth(end.getMonth() + 1);\n\t\t} else {\n\t\t\tstart.setMonth(start.getMonth() - 1);\n\t\t}\n\t\tstart.setHours(0, 0, 0);\n\t\tend.setHours(23, 59, 59);\n\t\treturn [start, end];\n\t},\n\t/**\n\t * 获取简单的日期时间范围\n\t * @param isFuture 是否为未来时间\n\t */\n\tgetSimpleShortcuts(isFuture = false): {\n\t\ttext: string;\n\t\tvalue: () => Date;\n\t}[] {\n\t\tif (isFuture) {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\ttext: \"今天\",\n\t\t\t\t\tvalue: (): Date => {\n\t\t\t\t\t\tconst date = new Date();\n\t\t\t\t\t\tdate.setHours(0, 0, 0);\n\t\t\t\t\t\treturn date;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttext: \"明天\",\n\t\t\t\t\tvalue: (): Date => {\n\t\t\t\t\t\tconst date = new Date();\n\t\t\t\t\t\tdate.setDate(date.getDate() + 1);\n\t\t\t\t\t\tdate.setHours(0, 0, 0);\n\t\t\t\t\t\treturn date;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttext: \"一周后\",\n\t\t\t\t\tvalue: (): Date => {\n\t\t\t\t\t\tconst date = new Date();\n\t\t\t\t\t\tdate.setDate(date.getDate() + 7);\n\t\t\t\t\t\tdate.setHours(0, 0, 0);\n\t\t\t\t\t\treturn date;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttext: \"一月后\",\n\t\t\t\t\tvalue: (): Date => {\n\t\t\t\t\t\tconst date = new Date();\n\t\t\t\t\t\tdate.setMonth(date.getMonth() + 1);\n\t\t\t\t\t\tdate.setHours(0, 0, 0);\n\t\t\t\t\t\treturn date;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttext: \"一年后\",\n\t\t\t\t\tvalue: (): Date => {\n\t\t\t\t\t\tconst date = new Date();\n\t\t\t\t\t\tdate.setFullYear(date.getFullYear() + 1);\n\t\t\t\t\t\tdate.setHours(0, 0, 0);\n\t\t\t\t\t\treturn date;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t];\n\t\t} else {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\ttext: \"今天\",\n\t\t\t\t\tvalue: (): Date => {\n\t\t\t\t\t\tconst date = new Date();\n\t\t\t\t\t\tdate.setHours(0, 0, 0);\n\t\t\t\t\t\treturn date;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttext: \"昨天\",\n\t\t\t\t\tvalue: (): Date => {\n\t\t\t\t\t\tconst date = new Date();\n\t\t\t\t\t\tdate.setDate(date.getDate() - 1);\n\t\t\t\t\t\tdate.setHours(0, 0, 0);\n\t\t\t\t\t\treturn date;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttext: \"一周前\",\n\t\t\t\t\tvalue: (): Date => {\n\t\t\t\t\t\tconst date = new Date();\n\t\t\t\t\t\tdate.setDate(date.getDate() - 7);\n\t\t\t\t\t\tdate.setHours(0, 0, 0);\n\t\t\t\t\t\treturn date;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttext: \"一月前\",\n\t\t\t\t\tvalue: (): Date => {\n\t\t\t\t\t\tconst date = new Date();\n\t\t\t\t\t\tdate.setMonth(date.getMonth() - 1);\n\t\t\t\t\t\tdate.setHours(0, 0, 0);\n\t\t\t\t\t\treturn date;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttext: \"一年前\",\n\t\t\t\t\tvalue: (): Date => {\n\t\t\t\t\t\tconst date = new Date();\n\t\t\t\t\t\tdate.setFullYear(date.getFullYear() - 1);\n\t\t\t\t\t\tdate.setHours(0, 0, 0);\n\t\t\t\t\t\treturn date;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\t},\n\t/**\n\t * 获取日期范围\n\t * @param isFuture 是否为未来时间\n\t */\n\tgetShortcuts(isFuture = false): {\n\t\ttext: string;\n\t\tvalue: () => Date[];\n\t}[] {\n\t\tif (isFuture) {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\ttext: \"后1天\",\n\t\t\t\t\tvalue: (): Date[] => {\n\t\t\t\t\t\tconst end = new Date();\n\t\t\t\t\t\tconst start = new Date();\n\t\t\t\t\t\tend.setDate(end.getDate() + 1);\n\t\t\t\t\t\tstart.setHours(0, 0, 0);\n\t\t\t\t\t\tend.setHours(23, 59, 59);\n\t\t\t\t\t\treturn [start, end];\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttext: \"后3天\",\n\t\t\t\t\tvalue: (): Date[] => {\n\t\t\t\t\t\tconst end = new Date();\n\t\t\t\t\t\tconst start = new Date();\n\t\t\t\t\t\tend.setDate(end.getDate() + 3);\n\t\t\t\t\t\tstart.setHours(0, 0, 0);\n\t\t\t\t\t\tend.setHours(23, 59, 59);\n\t\t\t\t\t\treturn [start, end];\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttext: \"后1周\",\n\t\t\t\t\tvalue: (): Date[] => {\n\t\t\t\t\t\tconst end = new Date();\n\t\t\t\t\t\tconst start = new Date();\n\t\t\t\t\t\tend.setDate(end.getDate() + 7);\n\t\t\t\t\t\tstart.setHours(0, 0, 0);\n\t\t\t\t\t\tend.setHours(23, 59, 59);\n\t\t\t\t\t\treturn [start, end];\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttext: \"后1月\",\n\t\t\t\t\tvalue: (): Date[] => {\n\t\t\t\t\t\tconst end = new Date();\n\t\t\t\t\t\tconst start = new Date();\n\t\t\t\t\t\tend.setMonth(end.getMonth() + 1);\n\t\t\t\t\t\tstart.setHours(0, 0, 0);\n\t\t\t\t\t\tend.setHours(23, 59, 59);\n\t\t\t\t\t\treturn [start, end];\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttext: \"后3月\",\n\t\t\t\t\tvalue: (): Date[] => {\n\t\t\t\t\t\tconst end = new Date();\n\t\t\t\t\t\tconst start = new Date();\n\t\t\t\t\t\tend.setMonth(end.getMonth() + 3);\n\t\t\t\t\t\tstart.setHours(0, 0, 0);\n\t\t\t\t\t\tend.setHours(23, 59, 59);\n\t\t\t\t\t\treturn [start, end];\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttext: \"后6月\",\n\t\t\t\t\tvalue: (): Date[] => {\n\t\t\t\t\t\tconst end = new Date();\n\t\t\t\t\t\tconst start = new Date();\n\t\t\t\t\t\tend.setMonth(end.getMonth() + 6);\n\t\t\t\t\t\tstart.setHours(0, 0, 0);\n\t\t\t\t\t\tend.setHours(23, 59, 59);\n\t\t\t\t\t\treturn [start, end];\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttext: \"后1年\",\n\t\t\t\t\tvalue: (): Date[] => {\n\t\t\t\t\t\tconst end = new Date();\n\t\t\t\t\t\tconst start = new Date();\n\t\t\t\t\t\tend.setFullYear(end.getFullYear() + 1);\n\t\t\t\t\t\tstart.setHours(0, 0, 0);\n\t\t\t\t\t\tend.setHours(23, 59, 59);\n\t\t\t\t\t\treturn [start, end];\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t];\n\t\t} else {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\ttext: \"近1天\",\n\t\t\t\t\tvalue: (): Date[] => {\n\t\t\t\t\t\tconst end = new Date();\n\t\t\t\t\t\tconst start = new Date();\n\t\t\t\t\t\tstart.setDate(start.getDate() - 1);\n\t\t\t\t\t\tstart.setHours(0, 0, 0);\n\t\t\t\t\t\tend.setHours(23, 59, 59);\n\t\t\t\t\t\treturn [start, end];\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttext: \"近3天\",\n\t\t\t\t\tvalue: (): Date[] => {\n\t\t\t\t\t\tconst end = new Date();\n\t\t\t\t\t\tconst start = new Date();\n\t\t\t\t\t\tstart.setDate(start.getDate() - 3);\n\t\t\t\t\t\tstart.setHours(0, 0, 0);\n\t\t\t\t\t\tend.setHours(23, 59, 59);\n\t\t\t\t\t\treturn [start, end];\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttext: \"近1周\",\n\t\t\t\t\tvalue: (): Date[] => {\n\t\t\t\t\t\tconst end = new Date();\n\t\t\t\t\t\tconst start = new Date();\n\t\t\t\t\t\tstart.setDate(start.getDate() - 7);\n\t\t\t\t\t\tstart.setHours(0, 0, 0);\n\t\t\t\t\t\tend.setHours(23, 59, 59);\n\t\t\t\t\t\treturn [start, end];\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttext: \"近1月\",\n\t\t\t\t\tvalue: (): Date[] => {\n\t\t\t\t\t\tconst end = new Date();\n\t\t\t\t\t\tconst start = new Date();\n\t\t\t\t\t\tstart.setMonth(start.getMonth() - 1);\n\t\t\t\t\t\tstart.setHours(0, 0, 0);\n\t\t\t\t\t\tend.setHours(23, 59, 59);\n\t\t\t\t\t\treturn [start, end];\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttext: \"近3月\",\n\t\t\t\t\tvalue: (): Date[] => {\n\t\t\t\t\t\tconst end = new Date();\n\t\t\t\t\t\tconst start = new Date();\n\t\t\t\t\t\tstart.setMonth(start.getMonth() - 3);\n\t\t\t\t\t\tstart.setHours(0, 0, 0);\n\t\t\t\t\t\tend.setHours(23, 59, 59);\n\t\t\t\t\t\treturn [start, end];\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttext: \"近6月\",\n\t\t\t\t\tvalue: (): Date[] => {\n\t\t\t\t\t\tconst end = new Date();\n\t\t\t\t\t\tconst start = new Date();\n\t\t\t\t\t\tstart.setMonth(start.getMonth() - 6);\n\t\t\t\t\t\tstart.setHours(0, 0, 0);\n\t\t\t\t\t\tend.setHours(23, 59, 59);\n\t\t\t\t\t\treturn [start, end];\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttext: \"近1年\",\n\t\t\t\t\tvalue: (): Date[] => {\n\t\t\t\t\t\tconst end = new Date();\n\t\t\t\t\t\tconst start = new Date();\n\t\t\t\t\t\tstart.setFullYear(start.getFullYear() - 1);\n\t\t\t\t\t\tstart.setHours(0, 0, 0);\n\t\t\t\t\t\tend.setHours(23, 59, 59);\n\t\t\t\t\t\treturn [start, end];\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\t},\n\t/**\n\t * 判断传入的时间是否大于当前时间\n\t */\n\tgetDisabledDate(time: Date): boolean {\n\t\treturn time.getTime() > Date.now();\n\t},\n};\n"],"names":["dateUtil","getGreet","hour","Date","getHours","greet","dateTimeFix","date","isNil","timestamp","getTime","toString","length","minute","curTime","diffValue","minC","Math","abs","hourC","dayC","curDate","targetDate","totalMonthDiff","getFullYear","getMonth","suffix","floor","getSimpleTime","start","setHours","getDefaultTime","isFuture","end","setMonth","getSimpleShortcuts","text","value","setDate","getDate","setFullYear","getShortcuts","getDisabledDate","time","now"],"mappings":"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"}