废话不多说直接上代码
import mainService from "../../utils/main.service";this.dateDes = `今天是${this.getDateString()}!截止目前,平台受理情况如下:`methods:{getDateString() {var d = new Date();var ymd = d.getFullYear() + "年" + (d.getMonth() + 1) + "月" + d.getDate() + "日";var week = ['日', '一', '二', '三', '四', '五', '六'];var w = "星期" + week[d.getDay()];var l = '农历' + mainService.getLunar()return ymd + " " + w + " " + l;},}
main.service.js
/*** 项目主服务类*/import * as commonApi from "../axios/services/common";import imgModel from '../model/img.model'class MainService {constructor(){this.throttle = this.throttleFn(); // 节流this.debounce = this.debounceFn(); // 防抖 }/*** 节流适用场景:表单提交* @param {function} handler 进行防抖的函数* @param {number} wait 等待时间ms*/throttleFn() {var lastTime = 0;return function (handler, wait = 1000) {var nowTime = new Date().getTime();if (nowTime - lastTime > wait) {handler && handler();lastTime = nowTime;}}}/*** 防抖适用场景:搜索框* @param {function} handler 进行防抖的函数* @param {number} delay 等待时间ms*/debounceFn() {var timer = null;return function (handler, delay = 1000) {clearTimeout(timer);timer = setTimeout(function () {handler && handler();}, delay);}}getLunar(){var nyear;var nmonth;var nday = -1;var nwday;var nhrs;var nmin;var nsec;var lmonth, lday, lleap; //农历参数function Draw() {NewTick();//显示时间var s = nyear + '年' + nmonth + '月' + nday + '日 ' + '星期' + cweekday(nwday) + ' ' + shapetime(nhrs, nmin, nsec);s += " 农历" + lmonth + "月" + lday; //农历var lunar_month_day=lmonth + "月" + lday;//需要展示在页面地方return lunar_month_day}function NewTick() {let noww = new Date();if (noww.getDate() != nday) {nyear = noww.getFullYear();nmonth = noww.getMonth() + 1;nwday = noww.getDay();nday = noww.getDate();getlunar(); //获取农历}nhrs = noww.getHours();nmin = noww.getMinutes();nsec = noww.getSeconds();}//辅助函数var hzWeek = new Array("日", "一", "二", "三", "四", "五", "六", "日");function cweekday(wday) {return hzWeek[wday];}function shapetime(vhrs, vmin, vsec) {if (vsec <= 9) vsec = "0" + vsec;if (vmin <= 9) vmin = "0" + vmin;if (vhrs <= 9) vhrs = "0" + vhrs;return vhrs + ":" + vmin + ":" + vsec}//农历函数开始var lunarInfo = new Array(0x04bd8, 0x04ae0, 0x0a570, 0x054d5, 0x0d260, 0x0d950, 0x16554, 0x056a0, 0x09ad0, 0x055d2, 0x04ae0, 0x0a5b6, 0x0a4d0, 0x0d250, 0x1d255, 0x0b540, 0x0d6a0, 0x0ada2, 0x095b0, 0x14977, 0x04970, 0x0a4b0, 0x0b4b5, 0x06a50, 0x06d40, 0x1ab54, 0x02b60, 0x09570, 0x052f2, 0x04970, 0x06566, 0x0d4a0, 0x0ea50, 0x06e95, 0x05ad0, 0x02b60, 0x186e3, 0x092e0, 0x1c8d7, 0x0c950, 0x0d4a0, 0x1d8a6, 0x0b550, 0x056a0, 0x1a5b4, 0x025d0, 0x092d0, 0x0d2b2, 0x0a950, 0x0b557, 0x06ca0, 0x0b550, 0x15355, 0x04da0, 0x0a5b0, 0x14573, 0x052b0, 0x0a9a8, 0x0e950, 0x06aa0, 0x0aea6, 0x0ab50, 0x04b60, 0x0aae4, 0x0a570, 0x05260, 0x0f263, 0x0d950, 0x05b57, 0x056a0, 0x096d0, 0x04dd5, 0x04ad0, 0x0a4d0, 0x0d4d4, 0x0d250, 0x0d558, 0x0b540, 0x0b6a0, 0x195a6, 0x095b0, 0x049b0, 0x0a974, 0x0a4b0, 0x0b27a, 0x06a50, 0x06d40, 0x0af46, 0x0ab60, 0x09570, 0x04af5, 0x04970, 0x064b0, 0x074a3, 0x0ea50, 0x06b58, 0x05ac0, 0x0ab60, 0x096d5, 0x092e0, //19900x0c960, 0x0d954, 0x0d4a0, 0x0da50, 0x07552, 0x056a0, 0x0abb7, 0x025d0, 0x092d0, 0x0cab5, 0x0a950, 0x0b4a0, 0x0baa4, 0x0ad50, 0x055d9, 0x04ba0, 0x0a5b0, 0x15176, 0x052b0, 0x0a930, 0x07954, 0x06aa0, 0x0ad50, 0x05b52, 0x04b60, 0x0a6e6, 0x0a4e0, 0x0d260, 0x0ea65, 0x0d530, 0x05aa0, 0x076a3, 0x096d0, 0x04bd7, 0x04ad0, 0x0a4d0, 0x1d0b6, 0x0d250, 0x0d520, 0x0dd45, 0x0b5a0, 0x056d0, 0x055b2, 0x049b0, 0x0a577, 0x0a4b0, 0x0aa50, 0x1b255, 0x06d20, 0x0ada0, 0x14b63);function lYearDays(y) {var i, sum = 348;for (i = 0x8000; i > 0x8; i >>= 1) sum += (lunarInfo[y - 1900] & i) ? 1 : 0;return (sum + leapDays(y));}function leapDays(y) {if (leapMonth(y)) return ((lunarInfo[y - 1900] & 0x10000) ? 30 : 29);else return (0);}function leapMonth(y) {return (lunarInfo[y - 1900] & 0xf);}function monthDays(y, m) {return ((lunarInfo[y - 1900] & (0x10000 >> m)) ? 30 : 29);}function Lunar(y, m, d) {var i, leap = 0,temp = 0;var offset = (Date.UTC(y, m, d) - Date.UTC(1900, 0, 31)) / 86400000;for (i = 1900; i < 2050 && offset > 0; i++) {temp = lYearDays(i);offset -= temp;}if (offset < 0) {offset += temp;i--;}this.year = i;leap = leapMonth(i);this.isLeap = false;for (i = 1; i < 13 && offset > 0; i++) {if (leap > 0 && i == (leap + 1) && this.isLeap == false) {--i;this.isLeap = true;temp = leapDays(this.year);} else {temp = monthDays(this.year, i);}if (this.isLeap == true && i == (leap + 1)) this.isLeap = false;offset -= temp;}if (offset == 0 && leap > 0 && i == leap + 1) if (this.isLeap) {this.isLeap = false;} else {this.isLeap = true; --i;}if (offset < 0) {offset += temp; --i;}this.month = i;this.day = offset + 1;}var nStr1 = new Array('', '一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二');var nStr2 = new Array('初', '十', '廿', '卅', '□');function GetcDay(d) {var s;switch (d) {case 10:s = '初十';break;case 20:s = '二十';break;case 30:s = '三十';break;default:s = nStr2[Math.floor(d / 10)];s += nStr1[d % 10];break;}return (s);}function GetcMon(m) {if (m == 1) return '正';else return nStr1[m];}function getlunar() {var lObj = new Lunar(nyear, nmonth - 1, nday);lmonth = GetcMon(lObj.month);lday = GetcDay(lObj.day);lleap = lObj.isLeap;if (lleap == 1) {lmonth = "闰" + lmonth;}}//农历函数结束return Draw();}}export default new MainService();```