90 lines
2.8 KiB
TypeScript
90 lines
2.8 KiB
TypeScript
|
|
export default class DateUtil {
|
|
protected static _serverTime: number = 0;
|
|
protected static _getServerTime: number = 0;
|
|
|
|
public static setServerTime(time: number): void {
|
|
this._serverTime = time;
|
|
this._getServerTime = Date.now();
|
|
}
|
|
|
|
public static getServerTime(): number {
|
|
let nowTime: number = Date.now();
|
|
return nowTime - this._getServerTime + this._serverTime;
|
|
}
|
|
|
|
//是否在该时间之后
|
|
public static isAfterServerTime(stms:number):boolean{
|
|
var st = this.getServerTime();
|
|
return st - stms > 0;
|
|
}
|
|
|
|
public static leftTime(stms:number):number{
|
|
var st = this.getServerTime();
|
|
return stms - st;
|
|
}
|
|
|
|
public static leftTimeStr(stms:number):string{
|
|
var diff = this.leftTime(stms);
|
|
return this.converSecondStr(diff);
|
|
}
|
|
|
|
/**补零*/
|
|
public static fillZero(str: string, num: number = 2): string {
|
|
while (str.length < num) {
|
|
str = "0" + str;
|
|
}
|
|
return str;
|
|
}
|
|
|
|
/**时间字符串格式转换
|
|
* 年 YYYY
|
|
* 月 MM
|
|
* 日 DD
|
|
* 时 hh
|
|
* 分 mm
|
|
* 秒 ss
|
|
* 毫秒 zzz*/
|
|
public static converTimeStr(ms: number, format: string = "hh:mm:ss"): string {
|
|
let date: Date = new Date(ms);
|
|
let year: string = this.fillZero(date.getFullYear() + "", 4);
|
|
let month: string = this.fillZero((date.getMonth() + 1) + "", 2);
|
|
let dat: string = this.fillZero(date.getDate() + "", 2);
|
|
let hour: string = this.fillZero(date.getHours() + "", 2);
|
|
let minute: string = this.fillZero(date.getMinutes() + "", 2);
|
|
let second: string = this.fillZero(date.getSeconds() + "", 2);
|
|
let minSecond: string = this.fillZero(date.getMilliseconds() + "", 3);
|
|
|
|
let str: string = format + "";
|
|
str = format.replace(/YYYY/, year);
|
|
str = str.replace(/MM/, month);
|
|
str = str.replace(/DD/, dat);
|
|
str = str.replace(/hh/, hour);
|
|
str = str.replace(/mm/, minute);
|
|
str = str.replace(/ss/, second);
|
|
str = str.replace(/zzz/, minSecond);
|
|
return str;
|
|
}
|
|
|
|
/**简易时间字符串格式转换*/
|
|
public static converSecondStr(ms: number, format: string = "hh:mm:ss"): string {
|
|
let second: number = Math.floor(ms / 1000);
|
|
let hour: number = Math.floor(second / 3600);
|
|
// console.log("hour:", hour);
|
|
|
|
second -= hour * 3600;
|
|
let minute:number = Math.floor(second / 60);
|
|
second -= minute * 60;
|
|
|
|
let str: string = format + "";
|
|
if (hour > 0) {
|
|
str = str.replace(/hh/, this.fillZero(hour + "", 2));
|
|
} else {
|
|
str = str.replace(/hh:/, "");
|
|
}
|
|
str = str.replace(/mm/, this.fillZero(minute + "", 2));
|
|
str = str.replace(/ss/, this.fillZero(second + "", 2));
|
|
return str;
|
|
}
|
|
}
|