TimeHelper.ts 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. /**
  2. * 时间相关方法
  3. * 字符 含义 举例
  4. * y(小写y) 年 yyyy-2015
  5. * M(大写M) 月 MM-01
  6. * d(小写d) 日(某月份对应的天数) dd-02
  7. * H(24 小时制,大写H) 小时(0-23) HH-17
  8. * h(12 小时制,小写h) 小时(1-12) hh-05
  9. * m(小写m) 分钟 mm-19
  10. * s(小写s) 秒 ss-22
  11. * Y(大写y) Week Year YYYY-2015
  12. * D(大写D) 一年中的天数(年份为大写Y起作用) DD-362
  13. * S(大写S) 毫秒 SSS-043
  14. */
  15. export class TimeHelper {
  16. private constructor() {
  17. }
  18. /**
  19. * 获取当前时间戳
  20. * @returns
  21. */
  22. static getTimeMillis() {
  23. return new Date().getTime()
  24. }
  25. /**
  26. * 获取当前时间,指定返回样式
  27. * @param formats 时间格式
  28. * 'yyyy-MM-dd HH:mm:ss'
  29. */
  30. static getTime(format: string = 'yyyy-MM-dd HH:mm:ss') {
  31. return TimeHelper.formatDate(new Date(), format)
  32. }
  33. /**
  34. * 时间格式化
  35. * @param date number类型为毫秒级时间戳
  36. * @param format
  37. * @returns
  38. */
  39. static formatDate(date: Date | number, format: string = 'yyyy-MM-dd HH:mm:ss') {
  40. if (typeof date === 'number') {
  41. return this.formatDate(new Date(date), format);
  42. } else {
  43. const replacements: { [key: string]: string } = {
  44. yyyy: date.getFullYear().toString(),
  45. MM: String(date.getMonth() + 1).padStart(2, "0"),
  46. dd: String(date.getDate()).padStart(2, "0"),
  47. HH: String(date.getHours()).padStart(2, "0"),
  48. mm: String(date.getMinutes()).padStart(2, "0"),
  49. ss: String(date.getSeconds()).padStart(2, "0")
  50. };
  51. return format.replace(/yyyy|MM|dd|HH|mm|ss/g, matched => replacements[matched]);
  52. }
  53. }
  54. // // 时间戳转指定类型字符串(毫秒级)
  55. // static formatDateForTime(time: number, format: string) {
  56. // return this.formatDate(new Date(time), format);
  57. // }
  58. /**
  59. * 获取月份天数
  60. * @param year
  61. * @param month
  62. * @returns
  63. */
  64. static getMonthDays(year: number, month: number) {
  65. return new Date(year, month, 0).getDate()
  66. }
  67. }