TimeUtil.ts 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. export class TimeUtil {
  2. /**
  3. * 获取当前时间戳
  4. * @returns
  5. */
  6. public static getCurrTimeStamp(): number {
  7. return Date.now()
  8. }
  9. /**
  10. * 获取当前时间对象
  11. * @returns
  12. */
  13. public static getCurrTimeDate(): Date {
  14. return new Date(this.getCurrTimeStamp())
  15. }
  16. /**
  17. * 获取星期几 1 - 7
  18. * @returns
  19. */
  20. public static getCurWeekDay(): number {
  21. let day = this.getCurrTimeDate().getDay()
  22. return day == 0 ? 7 : day
  23. }
  24. /**
  25. * 是否为同一天
  26. * @returns
  27. */
  28. public static isSameDay(timeStamp1: number, timeStamp2: number): boolean {
  29. const date1: Date = new Date(timeStamp1)
  30. const date2: Date = new Date(timeStamp2)
  31. return date1.getFullYear() === date2.getFullYear() && date1.getMonth() === date2.getMonth() && date1.getDate() === date2.getDate()
  32. }
  33. /**
  34. * 是否为同一周
  35. * @param timestamp 与当前时间对比的时间戳
  36. */
  37. public static isSameWeek(timestamp: number): boolean {
  38. let currTime = this.getCurrTimeStamp()
  39. let currWeek = this.getCurWeekDay()
  40. let date = new Date(timestamp)
  41. let strDate = date.toLocaleDateString()
  42. for (let i = 1; i <= 7; i++) {
  43. if (strDate == new Date(currTime + (i - currWeek) * 24 * 3600 * 1000).toLocaleDateString()) {
  44. return true
  45. }
  46. }
  47. return false
  48. }
  49. /**
  50. * 获取指定时间戳
  51. * @param time 格式为:YYYY/MM/DD HH:MM:SS 例如 2021/5/31 18:53
  52. * @returns
  53. */
  54. public static getAssignTimestamp(time: string): number {
  55. time = time.replace(/-/g, '/')
  56. let date = new Date(time)
  57. let sTime = date.getTime()
  58. return sTime
  59. }
  60. /**
  61. * 时间格式化 时:分:秒
  62. * @param millisecond 毫秒
  63. * @returns
  64. */
  65. public static formatTime_HHMMSS(millisecond: number): string {
  66. let second = millisecond / 1000
  67. let hour = (Array(2).join('0') + Math.floor(second / 3600)).slice(-2)
  68. let min = (Array(2).join('0') + Math.floor((second % 3600) / 60)).slice(-2)
  69. let sec = (Array(2).join('0') + Math.floor(second) % 60).slice(-2)
  70. if (hour == "00") {
  71. return min + ":" + sec
  72. } else {
  73. return hour + ":" + min + ":" + sec
  74. }
  75. }
  76. /**
  77. * 时间格式化 10天1小时20分50秒
  78. * @param millisecond 毫秒
  79. * @returns
  80. */
  81. public static formatTime_DDHHMMSS(millisecond: number): string {
  82. let dval = millisecond / 1000
  83. let ss = dval % 60
  84. dval = Math.floor(dval / 60)
  85. let mm = dval % 60
  86. dval = Math.floor(dval / 60)
  87. let hh = dval % 24
  88. dval = Math.floor(dval / 24)
  89. let dd = dval
  90. let ret = ""
  91. if (dd > 0) {
  92. ret = dd + "天"
  93. if (hh > 0) {
  94. ret += hh + "小时"
  95. }
  96. } else {
  97. if (hh > 0) {
  98. ret += hh + "小时"
  99. }
  100. if (mm > 0) {
  101. ret += mm + "分"
  102. } else if (hh > 0) {
  103. ret += "零"
  104. }
  105. if (ss > 0) {
  106. ret += Math.floor(ss) + "秒"
  107. }
  108. }
  109. return ret
  110. }
  111. }