var api = require('../config/api.js'); var app = getApp(); function formatTime(date) { var year = date.getFullYear(); var month = date.getMonth() + 1; var day = date.getDate(); var hour = date.getHours(); var minute = date.getMinutes(); var second = date.getSeconds(); return [year, month, day].map(formatNumber).join('-') + ' ' + [hour, minute, second].map(formatNumber).join(':'); } function formetdate(date) { var year = date.getFullYear(); var month = date.getMonth() + 1; var day = date.getDate(); return [year, month, day].map(formatNumber).join('-'); } function formatNumber(n) { n = n.toString(); return n[1] ? n : '0' + n; } /** * 封封微信的的request */ function request(url, data = {}, method = 'GET') { return new Promise(function (resolve, reject) { uni.request({ url: url, data: data, method: method, header: { 'Content-Type': 'application/json', 'X-JZ-Token': uni.getStorageSync('token') }, success: function (res) { if (res.statusCode == 200) { if (res.data.errno == 501) { // 清除登录相关内容 try { uni.removeStorageSync('userInfo'); uni.removeStorageSync('token'); } catch (e) { console.log('CatchClause', e); console.log('CatchClause', e); } // Do something when catch error // 切换到登录页面 uni.navigateTo({ url: '/pages/auth/login/login' }); } else { resolve(res.data); } } else { reject(res.errMsg); } }, fail: function (err) { reject(err); } }); }); } function redirect(url) { //判断页面是否需要登录 uni.redirectTo({ url: url }); } function showErrorToast(msg) { uni.showToast({ title: msg, image: '/static/images/icon_error.png' }); } function formatweek(date) { let week = date.getDay(); let weekArr = ''; switch (week) { case 1: weekArr = '周一'; break; case 2: weekArr = '周二'; break; case 3: weekArr = '周三'; break; case 4: weekArr = '周四'; break; case 5: weekArr = '周五'; break; case 6: weekArr = '周六'; break; case 0: weekArr = '周日'; break; } return weekArr; } function getDateList(date, interval, length) { let dateList = []; let len = length ? length : 7; for (let i = 0; i < len; i++) { let datestamp = new Date(date.getTime() + i * 60 * 60 * 1000 * 24 * interval); let dateItem = { week: formatweek(datestamp), date: formetdate(datestamp), id: new Date(datestamp).getDay(), isBook: true, //是否可约 name: i == 0 ? '今天' : i == 1 ? '明天' : '', mark: '' //标注是否不可约的原因之类的 }; dateList.push(dateItem); } return dateList; } function dateDifference(end) { // //比较2个日期 // console.log(start + ",," + end); // var stime = new Date(start).getTime(); var stime = new Date().getTime(); console.log(end.replace(/-/g, '/')); var etime = new Date(end.replace(/-/g, '/')).getTime(); var usedTime = etime - stime; //两个时间戳相差的毫秒数 var days = Math.floor(usedTime / 86400000); //计算出小时数 var leave1 = usedTime % 86400000; //计算天数后剩余的毫秒数 var hours = Math.floor(leave1 / 3600000); //计算相差分钟数 var leave2 = leave1 % 3600000; //计算小时数后剩余的毫秒数 var minutes = Math.floor(leave2 / 60000); if (days == 0 && hours == 0) { return minutes + '分钟'; } if (days == 0) { return hours + '时' + minutes + '分钟'; } var time = days + '天' + hours + '时' + minutes + '分钟'; // var time = days; return time; } //获取下个月和下下个月的天数 function getNextMonthDays(next) { const today = new Date(); const currentMonth = today.getMonth(); // 获取当前月份,月份从0开始 const currentYear = today.getFullYear(); // 获取当前年份 if(next==1){ // 计算下个月的第一天 const nextMonth = (currentMonth + 1) % 12; const nextYear = currentMonth === 11 ? currentYear + 1 : currentYear; // 如果下个月是当前年的1月,则年份加1 if (nextMonth === 0) { nextYear++; } // 创建下个月第一天的日期对象 const firstDayNextMonth = new Date(nextYear, nextMonth, 1); // 获取下个月的天数 const daysInNextMonth = new Date(firstDayNextMonth.getFullYear(), firstDayNextMonth.getMonth() + 1, 0).getDate(); return daysInNextMonth; }else{ const nextMonth = (currentMonth + 2) % 12; const nextYear = currentMonth === 10 ? currentYear + 1 : currentYear; if (nextMonth === 0) { nextYear++; } const firstDayNextMonth = new Date(nextYear, nextMonth, 1); const daysInNextMonth = new Date(firstDayNextMonth.getFullYear(), firstDayNextMonth.getMonth() + 1, 0).getDate(); return daysInNextMonth; } } module.exports = { formatTime, formetdate, request, redirect, showErrorToast, formatweek, getDateList, dateDifference, getNextMonthDays };