utils.ts 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import { padZero } from '../common/util'
  2. export type TimeData = {
  3. days: number
  4. hours: number
  5. minutes: number
  6. seconds: number
  7. milliseconds: number
  8. }
  9. export function parseFormat(format: string, timeData: TimeData): string {
  10. const { days } = timeData
  11. let { hours, minutes, seconds, milliseconds } = timeData
  12. if (format.includes('DD')) {
  13. format = format.replace('DD', padZero(days))
  14. } else {
  15. hours += days * 24
  16. }
  17. if (format.includes('HH')) {
  18. format = format.replace('HH', padZero(hours))
  19. } else {
  20. minutes += hours * 60
  21. }
  22. if (format.includes('mm')) {
  23. format = format.replace('mm', padZero(minutes))
  24. } else {
  25. seconds += minutes * 60
  26. }
  27. if (format.includes('ss')) {
  28. format = format.replace('ss', padZero(seconds))
  29. } else {
  30. milliseconds += seconds * 1000
  31. }
  32. if (format.includes('S')) {
  33. const ms = padZero(milliseconds, 3)
  34. if (format.includes('SSS')) {
  35. format = format.replace('SSS', ms)
  36. } else if (format.includes('SS')) {
  37. format = format.replace('SS', ms.slice(0, 2))
  38. } else {
  39. format = format.replace('S', ms.charAt(0))
  40. }
  41. }
  42. return format
  43. }