|
|
@@ -1,97 +1,63 @@
|
|
|
+/**
|
|
|
+ * @description 时间工具类
|
|
|
+ * @author zy
|
|
|
+ */
|
|
|
export default class TimeUtil {
|
|
|
constructor() {
|
|
|
|
|
|
}
|
|
|
- /**
|
|
|
- * 获取当前日期
|
|
|
- * @param replace 间隔符,默认'-',则返回2020-10-10
|
|
|
- * @returns 当前时间字符串
|
|
|
- */
|
|
|
- public getNowDay(replace: string = '-'): string {
|
|
|
- // let day = new Date().toLocaleDateString().replace(/\//g, replace);// 这东西每种设备返回的格式不一样,不要用!
|
|
|
- let str = new Date();
|
|
|
- let day = str.getFullYear() + replace + (str.getMonth() + 1) + replace + str.getDate();
|
|
|
- return day;
|
|
|
- }
|
|
|
- /**
|
|
|
- * 计算日期之差【要求两日期格式相同】
|
|
|
- * @param strDateStart 开始时间
|
|
|
- * @param strDateEnd 结束时间
|
|
|
- * @param replace 日期分隔符,默认-
|
|
|
- * @returns <number>两日期之间相差多少天
|
|
|
- */
|
|
|
- public getDaysCount(strDateStart: string, strDateEnd: string, replace: string = '-'): number {
|
|
|
- var replace = "-"; //日期分隔符
|
|
|
- var oDate1;
|
|
|
- var oDate2;
|
|
|
- var iDays;
|
|
|
- oDate1 = strDateStart.split(replace);
|
|
|
- oDate2 = strDateEnd.split(replace);
|
|
|
- var strDateS = new Date(oDate1[0], oDate1[1] - 1, oDate1[2]) as any;
|
|
|
- var strDateE = new Date(oDate2[0], oDate2[1] - 1, oDate2[2]) as any;
|
|
|
- let temp_num = Math.abs(strDateS - strDateE) as any || 0;
|
|
|
- temp_num = temp_num / 1000 / 60 / 60 / 24;
|
|
|
- iDays = parseInt(temp_num)//把相差的毫秒数转换为天数
|
|
|
|
|
|
- return iDays;
|
|
|
- }
|
|
|
/**
|
|
|
- * 是否是第二个月
|
|
|
- * @param strDateStart 开始时间
|
|
|
- * @param strDateEnd 结束时间
|
|
|
- * @param replace 日期分隔符,默认-
|
|
|
- * @returns <boolean>
|
|
|
+ * 获取当前日期
|
|
|
+ * @param replace 间隔符,默认'-',则返回2020-10-10
|
|
|
+ * @returns 当前时间字符串
|
|
|
*/
|
|
|
- public isNextMonth(strDateStart: string, strDateEnd: string, replace: string = '-'): boolean {
|
|
|
- let oDate1 = strDateStart.split(replace);
|
|
|
- let oDate2 = strDateEnd.split(replace);
|
|
|
- if (parseInt(oDate1[1]) < parseInt(oDate2[1])) {
|
|
|
- return true;
|
|
|
- }
|
|
|
- return false;
|
|
|
+ public getNowDayString(replace: string = '-'): string {
|
|
|
+ let date = new Date();
|
|
|
+ return date.getFullYear() + replace + (date.getMonth() + 1) + replace + date.getDate();
|
|
|
}
|
|
|
+
|
|
|
/**
|
|
|
- * 将秒转换成 时分秒 格式
|
|
|
- * @param value <string>秒
|
|
|
- * @param complement <number>补位,1补位到分,>1补位到时
|
|
|
- * @returns <string>时分秒 格式的时间
|
|
|
+ * 倒计时转换为时间格式(h:m:s) ,可自定义
|
|
|
+ * @param t 时间(秒)
|
|
|
+ * @param f 格式
|
|
|
*/
|
|
|
- public formatSeconds(value: string, complement: number = 0): string {
|
|
|
- let theTime = parseInt(value);// 秒
|
|
|
- let middle = 0;// 分
|
|
|
- let hour = 0;// 小时
|
|
|
+ public format(t: number, f: string = "h:m:s"): string {
|
|
|
+ let d: number = Math.floor(t / 24 / 3600);
|
|
|
+ let h: number = Math.floor((t / 3600) % 24);
|
|
|
+ let m: number = Math.floor((t % 3600) / 60);
|
|
|
+ let s: number = (t % 3600) % 60;
|
|
|
|
|
|
- if (theTime > 60) {
|
|
|
- middle = parseInt((theTime / 60) as any);
|
|
|
- theTime = parseInt((theTime % 60) as any);
|
|
|
- if (middle > 60) {
|
|
|
- hour = parseInt((middle / 60) as any);
|
|
|
- middle = parseInt((middle % 60) as any);
|
|
|
+ function parse_format(t: number): string {
|
|
|
+ let s: string = t.toString();
|
|
|
+ if (t < 10) {
|
|
|
+ s = "0" + t;
|
|
|
}
|
|
|
+ return s;
|
|
|
+ }
|
|
|
+ if (f.indexOf("d") != -1) {
|
|
|
+ f = f.replace(/d/g, parse_format(d));
|
|
|
}
|
|
|
- let second = parseInt(theTime as any) as any;
|
|
|
- if (complement) {
|
|
|
- second = second < 10 ? '0' + second : second;// 补位加0
|
|
|
+ else {
|
|
|
+ h += d * 24;
|
|
|
}
|
|
|
- let result = "" + second + "";//秒
|
|
|
- if (middle > 0) {
|
|
|
- let str_middle = parseInt(middle as any) as any;
|
|
|
- str_middle = str_middle < 10 ? '0' + str_middle : str_middle;// 补位加0
|
|
|
- result = "" + str_middle + ":" + result;//分
|
|
|
+ if (f.indexOf("h") != -1) {
|
|
|
+ f = f.replace(/h/g, parse_format(h));
|
|
|
} else {
|
|
|
- if (complement) {
|
|
|
- result = "00" + ":" + result;//分
|
|
|
- }
|
|
|
+ m += h * 60;
|
|
|
}
|
|
|
- if (hour > 0) {
|
|
|
- let str_hour = parseInt(hour as any) as any;
|
|
|
- str_hour = str_hour < 10 ? '0' + str_hour : str_hour;// 补位加0
|
|
|
- result = "" + str_hour + ":" + result;//小时
|
|
|
+ if (f.indexOf("m") != -1) {
|
|
|
+ f = f.replace(/m/g, parse_format(m));
|
|
|
} else {
|
|
|
- if (complement > 1) {
|
|
|
- result = "00" + ":" + result;// 时
|
|
|
+ if (f.indexOf("h") != -1) {
|
|
|
+ s += m * 60;
|
|
|
+ } else {
|
|
|
+ s = t;
|
|
|
}
|
|
|
}
|
|
|
- return result;
|
|
|
+ if (f.indexOf("s") != -1) {
|
|
|
+ f = f.replace(/s/g, parse_format(s));
|
|
|
+ }
|
|
|
+ return f;
|
|
|
}
|
|
|
}
|