123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178 |
- import { StringUtil } from "./StringUtil";
- export class TimeUtil {
- //获取时间戳
- static getTimeStamp() {
- return Date.now()
- }
- //毫秒
- static getTime() {
- return new Date().getTime();
- }
- //秒
- static getTimeEx(D_value: number) {
- let now = new Date();
- let time = now.getTime()
- return Math.floor(time / 1000) + D_value;
- }
- //毫秒
- static getTimeExMiliTime(D_value: number) : number {
- let now = new Date();
- let time = now.getTime()
- time += D_value
- return time;
- }
- //格式化时间(秒数到01:23:45)
- static formatTime(time: number) {
- if (time <= 0) return "";
- let h = Math.floor(time / 3600);
- let m = Math.floor((time / 60 % 60));
- let s = Math.floor((time % 60));
- let str: any = ((h < 10) ? "0{0}:" : "{0}:") + ((m < 10) ? "0{1}:" : "{1}:") + ((s < 10) ? "0{2}" : "{2}");
- return StringUtil.format(str, h, m, s);
- }
- //格式化时间(00:00)
- static formatTimeByTwo(time: number) {
- if (time <= 0) return "";
- let h = Math.floor(time / 3600);
- let m = Math.floor((time / 60 % 60));
- let s = Math.floor((time % 60));
- if (h > 0) {
- let str: any = ((h < 10) ? "0{0}:" : "{0}:") + ((m < 10) ? "0{1}" : "{1}")
- return StringUtil.format(str, h, m);
- } else {
- let str: any = ((m < 10) ? "0{0}:" : "{0}:") + ((s < 10) ? "0{1}" : "{1}");
- return StringUtil.format(str, m, s);
- }
- }
- static getDateDay(time, half?) {
- let date = new Date(time * 1000);
- let Y = date.getFullYear() + '-'
- let M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-'
- let D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + ''
- if (half) {
- return Y + M + D;
- }
- let h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':'
- let m = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':'
- let s = (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds())
- return Y + M + D + ' ' + h + m + s
- }
- //日/月 时:分 (毫秒制)
- static getDate_DDMMHHMM_ms(time) {
- let date = new Date(time);
- let M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + ''
- let D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + '/'
-
- let h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':'
- let m = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes())
- return D + M + ' ' + h + m
- }
- static getDateDay_DDMMYYYY_hhmm(time) {
- let date = new Date(time);
- let M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-'
- let D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + '-'
- let Y = date.getFullYear() + ''
-
- let h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':'
- let m = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ''
- return D + M + Y + ' ' + h + m
- }
-
- //日/月 (毫秒制)
- static getDate_DDMM_ms(time) {
- let date = new Date(time);
- let M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + ''
- let D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + '/'
- return D + M
- }
- //两个时间间隔天数
- static getDayInterval(time1: number, time2: number) {
- let format_time = (count: number) => {
- let time = new Date(count);
- let year = time.getFullYear();
- let month = time.getMonth() + 1;
- let date = time.getDate();
- return (year + "-" + month + "-" + date)
- };
- return (Date.parse(format_time(Math.max(time1, time2))) - Date.parse(format_time(Math.min(time1, time2)))) / 86400000;
- }
- /**
- * 结束时间为跨天凌晨5点
- * @param serverTime
- * @returns
- */
- static getTodayEndTime(serverTime: number) {
- let time = new Date(serverTime * 1000);
- if (time.getHours() >= 5) {
- time.setHours(5, 0, 0, 0);
- return (time.getTime() + 86400000) / 1000;
- } else {
- time.setHours(5, 0, 0, 0);
- return time.getTime() / 1000;
- }
- }
- /**
- * 时间格式化(倒计时)
- * @param seconds 要转换的时间
- * @param isShowDay 是否以:天/小时/分钟 的格式显示
- * @returns 返回当前传入时间对应的格式字符串
- */
- static formatCountdown(seconds: number, isShowDay: boolean) {
- let day = Math.floor(seconds / 60 / 60 / 24);
- let strReturn = '';
- if (isShowDay) {
- let hours = Math.floor((seconds % (60 * 60 * 24)) / 60 / 60);
- let minutes = Math.floor(seconds / 60 % 60);
- if (day >= 1) {
- strReturn = strReturn + day + '天';
- }
- strReturn = strReturn + hours + '时';
- strReturn = strReturn + minutes + '分';
- } else {
- let hours = Math.floor(seconds / 60 / 60);
- seconds = seconds - hours * 60 * 60;
- let minutes = Math.floor(seconds / 60);
- seconds = seconds - minutes * 60;
- strReturn = hours + '时', minutes + '分', seconds + '秒';
- }
- return strReturn;
- }
- /** 将秒转换为时分秒的时间格式 */
- static secondsToHMS(seconds: number, isShowHour?: boolean): string {
- if (!seconds) {
- seconds = 0;
- }
- const hours = Math.floor(seconds / 3600);
- const minutes = Math.floor((seconds % 3600) / 60);
- const remainingSeconds = seconds % 60;
- let timeStr = '';
- if (isShowHour) {
- // const hoursStr = hours < 10 ? "0" + hours : hours.toString();
- const hoursStr = hours.toString();
- const minutesStr = minutes < 10 ? "0" + minutes : minutes.toString();
- const secondsStr = remainingSeconds < 10 ? "0" + remainingSeconds : remainingSeconds.toString();
- timeStr = `${hoursStr}:${minutesStr}:${secondsStr}`;
- } else {
- const minutesStr = minutes < 10 ? "0" + minutes : minutes.toString();
- const secondsStr = remainingSeconds < 10 ? "0" + remainingSeconds : remainingSeconds.toString();
- timeStr = `${minutesStr}:${secondsStr}`;
- }
- return timeStr;
- }
- }
|