UNPKG

kaoqin-utils

Version:

考勤系统工具库

1 lines 2.62 kB
"use strict";const dayjs=require("dayjs"),isBetween=require("dayjs/plugin/isBetween");dayjs.extend(isBetween);const isoWeek=require("dayjs/plugin/isoWeek");dayjs.extend(isoWeek);class TimeUtils{static formatTimestamp(a){if(!a)return"\u672A\u77E5\u65F6\u95F4";if(13===a.toString().length)return dayjs(parseInt(a)).format("YYYY-MM-DD HH:mm:ss");if(10===a.toString().length)return dayjs(1e3*parseInt(a)).format("YYYY-MM-DD HH:mm:ss");try{return dayjs(a).format("YYYY-MM-DD HH:mm:ss")}catch(b){return a}}static shouldSendReminder(a,b="all"){const c=new Date,d=c.getHours(),e=c.getMinutes(),f=60*d+e,g="true"===process.env.DEBUG;if(g&&(console.log(`检查是否应发送${b}提醒,当前时间:${c.toLocaleString()} (${d}:${e})`),console.log(`提醒配置:上班:${a.morningStart.hour}:${a.morningStart.minute}-${a.morningEnd.hour}:${a.morningEnd.minute},下班:${a.eveningStart.hour}:${a.eveningStart.minute}-${a.eveningEnd.hour}:${a.eveningEnd.minute}`)),a.forceSend)return console.log("\u5F3A\u5236\u53D1\u9001\u63D0\u9192\u6D88\u606F\u6A21\u5F0F"),!0;if(!a.sendOnWeekends){const a=c.getDay();if(0===a||6===a)return console.log("\u4ECA\u5929\u662F\u5468\u672B\uFF0C\u8DF3\u8FC7\u63D0\u9192"),!1}const h=60*a.morningStart.hour+a.morningStart.minute,i=60*a.morningEnd.hour+a.morningEnd.minute,j=60*a.eveningStart.hour+a.eveningStart.minute,k=60*a.eveningEnd.hour+a.eveningEnd.minute;g&&(console.log(`当前时间(分钟表示):${f}`),console.log(`上班提醒时间范围(分钟表示):${h} - ${i}`),console.log(`下班提醒时间范围(分钟表示):${j} - ${k}`));const l=f>=h&&f<=i,m=f>=j&&f<=k;g&&(console.log(`当前时间是否在上班提醒范围内:${l}`),console.log(`- 是否 >= 上班开始时间(${h}分钟): ${f>=h}`),console.log(`- 是否 <= 上班结束时间(${i}分钟): ${f<=i}`),console.log(`当前时间是否在下班提醒范围内:${m}`),console.log(`- 是否 >= 下班开始时间(${j}分钟): ${f>=j}`),console.log(`- 是否 <= 下班结束时间(${k}分钟): ${f<=k}`));let n=!1;return n="morning"===b?l:"evening"===b?m:l||m,(g||"all"===b)&&console.log(`时间检查: ${"morning"===b?"\u4E0A\u73ED":"evening"===b?"\u4E0B\u73ED":"\u5168\u5929"} - ${n?"\u5728\u63D0\u9192\u65F6\u95F4\u8303\u56F4\u5185":"\u4E0D\u5728\u63D0\u9192\u65F6\u95F4\u8303\u56F4\u5185"}`),n}static getTodayString(a="YYYY-MM-DD"){return dayjs().format(a)}static getTodayFullString(){return dayjs().format("YYYY\u5E74MM\u6708DD\u65E5")}static getDateFullString(a){return dayjs(a).format("YYYY\u5E74MM\u6708DD\u65E5")}static isWeekend(a){return 5<dayjs(a).isoWeekday()}}module.exports=TimeUtils;