/** * 日期工具类 */ export default class DateUtils { static get now(): number { return Math.floor(this.nowTime / 1000); } static get nowTime(): number { return new Date().getTime(); } static get today(): string { let time = new Date(this.nowTime); let year = time.getFullYear(); let month = time.getMonth() + 1; let date = time.getDate(); return `${year}-${this.add(month)}-${this.add(date)}`; } static timeDay(timeNum: number): string { let time = new Date(timeNum); let year = time.getFullYear(); let month = time.getMonth() + 1; let date = time.getDate(); return `${year}-${this.add(month)}-${this.add(date)}`; } /** * 根据秒数格式化字符串 * @param second 秒数 * @param type 1:00:00:00 2:yyyy-mm-dd h:m:s 3:00:00 4:xx天前,xx小时前,xx分钟前 * @return */ static getFormatBySecond(second: number, type: number = 1): string { var str: string = ""; switch (type) { case 0: str = this.getFormatBySecond0(second); break; case 1: str = this.getFormatBySecond1(second); break; case 2: str = this.getFormatBySecond2(second); break; case 3: str = this.getFormatBySecond3(second); break; case 4: str = this.getFormatBySecond4(second); break; case 5: str = this.getFormatBySecond5(second); break; } return str; } // 0: 00:00 private static getFormatBySecond0(t: number = 0): string { var minst: number = Math.floor(t / 60); var secondt: number = Math.floor(t % 60); var mins: string; var sens: string; if (minst == 0) { mins = "00"; } else if (minst < 10) { mins = "0" + minst; } else { mins = "" + minst; } if (secondt == 0) { sens = "00"; } else if (secondt < 10) { sens = "0" + secondt; } else { sens = "" + secondt; } return mins + ":" + sens; } //1: 00:00:00 private static getFormatBySecond1(t: number = 0): string { let hourst: number = Math.floor(t / 3600); let hours: string; let day = ''; if (hourst == 0) { hours = "00"; } else { if (hourst < 10) hours = "0" + hourst; else { let h = hourst % 24; if (hourst >= 24) { hours = h < 10 ? "0" + h : '' + h; day = Math.floor(hourst / 24) + 'd '; } else hours = h < 10 ? "0" + h : '' + h; } } let minst: number = Math.floor((t - hourst * 3600) / 60); let secondt: number = Math.floor((t - hourst * 3600) % 60); let mins: string; let sens: string; if (minst == 0) { mins = "00"; } else if (minst < 10) { mins = "0" + minst; } else { mins = "" + minst; } if (secondt == 0) { sens = "00"; } else if (secondt < 10) { sens = "0" + secondt; } else { sens = "" + secondt; } return day + hours + ":" + mins + ":" + sens; } //3: 00:00 private static getFormatBySecond3(t: number = 0): string { var hourst: number = Math.floor(t / 3600); var minst: number = Math.floor((t - hourst * 3600) / 60); var secondt: number = Math.floor((t - hourst * 3600) % 60); var mins: string; var sens: string; if (minst == 0) { mins = "00"; } else if (minst < 10) { mins = "0" + minst; } else { mins = "" + minst; } if (secondt == 0) { sens = "00"; } else if (secondt < 10) { sens = "0" + secondt; } else { sens = "" + secondt; } return mins + ":" + sens; } //2:yyyy-mm-dd h:m:s private static getFormatBySecond2(time: number): string { var date: Date = new Date(time); var year: number = date.getFullYear(); var month: number = date.getMonth() + 1; //返回的月份从0-11; var day: number = date.getDate(); var hours: number = date.getHours(); var minute: number = date.getMinutes(); var second: number = date.getSeconds(); return year + "-" + month + "-" + day + " " + hours + ":" + minute + ":" + second; } //4:xx天前,xx小时前,xx分钟前 private static getFormatBySecond4(time: number): string { var t = Math.floor(time / 3600); if (t > 0) { if (t > 24) { return Math.floor(t / 24) + "天前"; } else { return t + "小时前"; } } else { return Math.floor(time / 60) + "分钟前"; } } private static getFormatBySecond5(time: number): string { // 每个时间单位所对应的秒数 var oneDay: number = 3600 * 24; var oneHourst: number = 3600; var oneMinst: number = 60; var days = Math.floor(time / oneDay); var hourst: number = Math.floor(time % oneDay / oneHourst) var minst: number = Math.floor((time - hourst * oneHourst) / oneMinst) //Math.floor(time % oneDay % oneHourst / oneMinst); var secondt: number = Math.floor((time - hourst * oneHourst) % oneMinst) //time; var dayss: string = ""; var hourss: string = "" var minss: string = ""; var secss: string = "" if (time > 0) { //天 if (days == 0) { dayss = ""; //小时 if (hourst == 0) { hourss = ""; //分 if (minst == 0) { minss = ""; if (secondt == 0) { secss = ""; } else if (secondt < 10) { secss = "0" + secondt + "秒"; } else { secss = "" + secondt + "秒"; } return secss; } else { minss = "" + minst + "分钟"; if (secondt == 0) { secss = ""; } else if (secondt < 10) { secss = "0" + secondt + "秒"; } else { secss = "" + secondt + "秒"; } } return minss + secss; } else { hourss = hourst + "小时"; if (minst == 0) { minss = ""; if (secondt == 0) { secss = ""; } else if (secondt < 10) { secss = "0" + secondt + "秒"; } else { secss = "" + secondt + "秒"; } return hourss + secss } else if (minst < 10) { minss = "0" + minst + "分钟"; } else { minss = "" + minst + "分钟"; } return hourss + minss; } } else { dayss = days + "天"; if (hourst == 0) { hourss = ""; } else { if (hourst < 10) hourss = "0" + hourst + "小时"; else hourss = "" + hourst + "小时"; ; } return dayss + hourss; } } return ""; } private static add(num) { return num < 10 ? '0' + num : num; } }