export const getRandomKey = () => { let key = '' + new Date().getTime() + Math.floor(Math.random() * 1000000) return key } export function getNowDateAndMonday(time) { let timestamp = new Date(time.replace(/-/g, "/")).getTime(); let serverDate = new Date(time); if (serverDate.getDay() == 0) { timestamp -= 7 * 24 * 60 * 60 * 1000; } let mondayTime = timestamp - (serverDate.getDay() - 1) * 24 * 60 * 60 * 1000; let mondayData = new Date(mondayTime); //年 let mondayY = mondayData.getFullYear(); //月 let mondayM = mondayData.getMonth() + 1 < 10 ? "0" + (mondayData.getMonth() + 1) : mondayData.getMonth() + 1; //日 let mondayD = mondayData.getDate() < 10 ? "0" + mondayData.getDate() : mondayData.getDate(); let str = mondayY + "-" + mondayM + "-" + mondayD; return str; } export function getNowDateAndSunday(time) { let timestamp = new Date(time.replace(/-/g, "/")).getTime(); let serverDate = new Date(time); let num = 7 - serverDate.getDay(); if (num == 7) { num = 0; } let sundayTiem = timestamp + num * 24 * 60 * 60 * 1000; let SundayData = new Date(sundayTiem); //年 let tomorrowY = SundayData.getFullYear(); //月 let tomorrowM = SundayData.getMonth() + 1 < 10 ? "0" + (SundayData.getMonth() + 1) : SundayData.getMonth() + 1; //日 let tomorrowD = SundayData.getDate() < 10 ? "0" + SundayData.getDate() : SundayData.getDate(); let str = tomorrowY + "-" + tomorrowM + "-" + tomorrowD; return str; } const browser = () => { var u = navigator.userAgent // app = navigator.appVersion; return { trident: u.indexOf('Trident') > -1, //IE内核 presto: u.indexOf('Presto') > -1, //opera内核 webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核 gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核 mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否为移动终端 ios: !!u.match(/Mac OS X/), //ios终端 // ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端 android: u.indexOf('DAYAAPPA') > -1 || u.indexOf('Adr') > -1, //android终端 iPhone: u.indexOf('DAYAAPPI') > -1, //是否为iPhone或者QQHD浏览器 isApp: u.indexOf('DAYAAPPI') > -1 || u.indexOf('DAYAAPPA') > -1 || u.indexOf('Adr') > -1, iPad: u.indexOf('iPad') > -1, //是否iPad webApp: u.indexOf('Safari') == -1, //是否web应该程序,没有头部与底部 weixin: u.indexOf('MicroMessenger') > -1, //是否微信 (2015-01-22新增) qq: u.match(/\sQQ/i) == " qq" //是否QQ } } const calcMinute = (minute) => { if (minute <= 0) { return '0分钟' } let minutes = minute % 60 // 算出分钟 let hours = 0 // 小时 if (minute >= 60) { hours = (minute - minutes) / 60 } let text = '' if (hours) { text = hours + '小时' } if (minutes) { text += minutes + '分钟' } return text } /** * 小于10的数变成 (0x) * @param {数值} num */ const getSTD = (num) => { return Number(num) >= 10 ? num : '0' + num } /** * 获取格式化的年月日 * @param {日期} time * @param {不是IOS里使用(多用于接口参数)} noIos */ const getYMD = (time, noIos) => { let tempDate = time || new Date() if (typeof (tempDate) == 'string') { tempDate = new Date(time.replace(/-/ig, '/')) } let t = noIos ? '-' : '/' let month = getSTD(tempDate.getMonth() + 1) let day = getSTD(tempDate.getDate()) return tempDate.getFullYear() + t + month + t + day } const getDateList = () => { let getNowYear = new Date().getFullYear() let getNowMonth = new Date().getMonth() + 1 const getDateList = {} for (let i = 0; i < 12; i++) { let months = [] for (let j = 0; j < (i == 0 ? getNowMonth : 12); j++) { months.push((j + 1) + '月') } getDateList[(getNowYear - i) + '年'] = months // 组合数据 } return getDateList } // 防抖 const _debounce = (fn, delay) => { delay = delay || 200 let timer return function () { let th = this let args = arguments if (timer) { clearTimeout(timer) } timer = setTimeout(function () { timer = null fn.apply(th, args) }, delay) }; } // 节流 const _throttle = (fn, time) => { let canRun = true return function () { let _arguments = arguments if (!canRun) return canRun = false setTimeout(() => { fn.call(this, _arguments) canRun = true }, time); } } // const _throttle = (fn, interval) => { // let last // let timer // interval = interval || 200 // return function () { // let that = this // let args = arguments // let now = +new Date(); // if(last && last - now < 2000){ // clearTimeout(timer) // } // timer = setTimeout(function () { // fn.apply(that, args) // last = +new Date() // }, 200) // } // } // 学生地址 const validStudentUrl = () => { let url = window.location.href let returnUrl = '' if (/test/.test(url)) { // test环境 returnUrl = 'http://mstutest.dayaedu.com' } else if (/dev/.test(url)) { // dev 环境 returnUrl = 'http://mstudev.dayaedu.com' } else if (/online/.test(url)) { //线上 returnUrl = 'https://mstuonline.dayaedu.com' } else { // 默认dev环境 returnUrl = 'http://mstudev.dayaedu.com' } return returnUrl } /** * 转换金额为保留2位小数 * @param x * @returns 强制保留2位小数的金额 */ const changeTwoDecimal = (amt) => { let f_x = parseFloat(amt); if (isNaN(f_x)) { return "0.00"; } f_x = Math.round(f_x * 100) / 100; let s_x = f_x.toString(); let pos_decimal = s_x.indexOf('.'); if (pos_decimal < 0) { pos_decimal = s_x.length; s_x += '.'; } while (s_x.length <= pos_decimal + 2) { s_x += '0'; } return s_x; } export { browser, calcMinute, getSTD, getYMD, getDateList, _debounce, _throttle, validStudentUrl, changeTwoDecimal }