|
@@ -1,4 +1,6 @@
|
|
|
import ruleReg from '/@/utils/ruleReg.ts';
|
|
|
+const synth = window.speechSynthesis;
|
|
|
+const msg = new SpeechSynthesisUtterance();
|
|
|
const Utils = {
|
|
|
|
|
|
* @description 深拷贝的方法
|
|
@@ -69,14 +71,81 @@ const Utils = {
|
|
|
return `${year}-${month}-${day}`;
|
|
|
},
|
|
|
|
|
|
+
|
|
|
+ getTime(format: string = ""){
|
|
|
+ let date = new Date();
|
|
|
+ let hours = date.getHours();
|
|
|
+ let minutes:string|number = date.getMinutes();
|
|
|
+ let seconds:string|number = date.getSeconds();
|
|
|
+ minutes = minutes<10 ? '0'+minutes : String(minutes);
|
|
|
+ seconds = seconds<10 ? '0'+seconds : String(seconds);
|
|
|
+ if(format == 'count'){
|
|
|
+ return `${seconds}`;
|
|
|
+ }
|
|
|
+ if(format == 'desc'){
|
|
|
+ return `${hours}:${minutes}`;
|
|
|
+ }
|
|
|
+ return `${hours}:${minutes}:${seconds}`;
|
|
|
+ },
|
|
|
+
|
|
|
+
|
|
|
+ getWeek(date: any){
|
|
|
+ let week = new Date(date).getDay();
|
|
|
+ switch(Number(week)){
|
|
|
+ case 0:
|
|
|
+ return "星期天";
|
|
|
+ case 1:
|
|
|
+ return "星期一";
|
|
|
+ case 2:
|
|
|
+ return "星期二";
|
|
|
+ case 3:
|
|
|
+ return "星期三";
|
|
|
+ case 4:
|
|
|
+ return "星期四";
|
|
|
+ case 5:
|
|
|
+ return "星期五";
|
|
|
+ case 6:
|
|
|
+ return "星期六";
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+
|
|
|
+ recentTime(day:any,fmt:any,time:any){
|
|
|
+
|
|
|
+ let now = (time? new Date(time) :new Date()).getTime();
|
|
|
+
|
|
|
+ let recent = new Date(now+day*24*60*60*1000)
|
|
|
+
|
|
|
+
|
|
|
+ let fmtObj = {
|
|
|
+ 'M+': recent.getMonth()+1,
|
|
|
+ 'd+': recent.getDate(),
|
|
|
+ 'h+': recent.getHours(),
|
|
|
+ 'm+': recent.getMinutes(),
|
|
|
+ 's+': recent.getSeconds(),
|
|
|
+ }
|
|
|
+
|
|
|
+ if(/(y+)/.test(fmt)){
|
|
|
+
|
|
|
+ fmt = fmt.replace(RegExp.$1,(recent.getFullYear()+'').substr(4-RegExp.$1.length))
|
|
|
+ }
|
|
|
+ for(let key in fmtObj){
|
|
|
+ if(new RegExp(`(${key})`).test(fmt)){
|
|
|
+
|
|
|
+ fmt = fmt.replace(RegExp.$1,RegExp.$1.length==1 ? fmtObj[key] : ('00'+fmtObj[key]).substr((''+fmtObj[key]).length))
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return fmt
|
|
|
+ },
|
|
|
+
|
|
|
|
|
|
* @description 获取当前日期(自定义格式)
|
|
|
* @param format
|
|
|
- * @returns y-m-d H:M:S, y-m-d, y-m, H:M:S, H:M
|
|
|
+ * @returns y-m-d, y-m, y-m-d H:M:S
|
|
|
*/
|
|
|
getDateFormat(format: string){
|
|
|
if(!ruleReg.emptyReg(format)){
|
|
|
- return '请传入日期格式,支持的格式:y-m-d H:M:S, y-m-d, y-m, H:M:S, H:M';
|
|
|
+ return '请传入日期格式,支持的格式:y-m-d, y-m, y-m-d H:M:S';
|
|
|
}
|
|
|
let result;
|
|
|
let date = new Date();
|
|
@@ -101,14 +170,20 @@ const Utils = {
|
|
|
case 'y-m':
|
|
|
result = `${y}-${m}`;
|
|
|
break;
|
|
|
+ case 'm-d':
|
|
|
+ result = `${m}-${d}`;
|
|
|
+ break;
|
|
|
case 'H:M:S':
|
|
|
result = `${H}:${M}:${S}`;
|
|
|
break;
|
|
|
case 'H:M':
|
|
|
result = `${H}:${M}`;
|
|
|
break;
|
|
|
+ case 'M:S':
|
|
|
+ result = `${M}:${S}`;
|
|
|
+ break;
|
|
|
default:
|
|
|
- result = `日期格式'${format}'不正确,支持的格式:y-m-d H:M:S, y-m-d, y-m, H:M:S, H:M`;
|
|
|
+ result = `日期格式'${format}'不正确,支持的格式:y-m-d, y-m, y-m-d H:M:S`;
|
|
|
break;
|
|
|
}
|
|
|
return result;
|
|
@@ -124,5 +199,53 @@ const Utils = {
|
|
|
let random = Math.random() * (m - n) + n;
|
|
|
return random.toFixed(0);
|
|
|
},
|
|
|
+
|
|
|
+
|
|
|
+ timeToken(token: any){
|
|
|
+ let date = new Date(token);
|
|
|
+ let H: string | number = date.getHours();
|
|
|
+ let M: string | number = date.getMinutes();
|
|
|
+ let S: string | number = date.getSeconds();
|
|
|
+ H = H<10 ? `0${H}` : H;
|
|
|
+ M = M<10 ? `0${M}` : M;
|
|
|
+ S = S<10 ? `0${S}` : S;
|
|
|
+ return `${H}:${M}:${S}`;
|
|
|
+ },
|
|
|
+
|
|
|
+
|
|
|
+ * 这个方法接受一个形如"YYYY-MM-DDTHH:mm:ss"格式的字符串作为预设时间,
|
|
|
+ * 返回一个布尔值,表示当前时间和预设时间之间的差值是否小于10分钟。
|
|
|
+ * 具体实现中,我们首先获取当前时间和预设时间的时间戳,然后计算它们之间的时间差,
|
|
|
+ * 最后判断时间差是否小于10分钟(单位为毫秒)。
|
|
|
+ * @param presetTime
|
|
|
+ * @returns
|
|
|
+ */
|
|
|
+ isWithin10Minutes(presetTime: any) {
|
|
|
+
|
|
|
+ const currentTime = Date.now();
|
|
|
+ const presetTimeMillis = new Date(presetTime).getTime();
|
|
|
+
|
|
|
+
|
|
|
+ const timeDiff = Math.abs(currentTime - presetTimeMillis);
|
|
|
+
|
|
|
+
|
|
|
+ return timeDiff < 10 * 60 * 1000;
|
|
|
+ },
|
|
|
+
|
|
|
+
|
|
|
+ handleSpeak(text: string){
|
|
|
+ msg.text = text;
|
|
|
+ msg.lang = "zh-CN";
|
|
|
+ msg.volume = 1;
|
|
|
+ msg.rate = 1;
|
|
|
+ msg.pitch = 1;
|
|
|
+ synth.speak(msg);
|
|
|
+ },
|
|
|
+
|
|
|
+ handleStop(e: any){
|
|
|
+ msg.text = e;
|
|
|
+ msg.lang = "zh-CN";
|
|
|
+ synth.cancel(msg);
|
|
|
+ },
|
|
|
}
|
|
|
export default Utils;
|