utils.ts 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. export const parseTime = (time) => {
  2. if (!time) {
  3. return null
  4. }
  5. const format = '{y}-{m}-{d} {h}:{i}:{s}'
  6. let date
  7. if (typeof time === 'object') {
  8. date = time
  9. } else {
  10. if (typeof time === 'string' && /^[0-9]+$/.test(time)) {
  11. time = parseInt(time)
  12. } else if (typeof time === 'string') {
  13. time = time
  14. .replace(new RegExp(/-/gm), '/')
  15. .replace('T', ' ')
  16. .replace(new RegExp(/\.[\d]{3}/gm), '')
  17. }
  18. if (typeof time === 'number' && time.toString().length === 10) {
  19. time = time * 1000
  20. }
  21. date = new Date(time)
  22. }
  23. const formatObj = {
  24. y: date.getFullYear(),
  25. m: date.getMonth() + 1,
  26. d: date.getDate(),
  27. h: date.getHours(),
  28. i: date.getMinutes(),
  29. s: date.getSeconds(),
  30. a: date.getDay()
  31. }
  32. const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
  33. let value = formatObj[key]
  34. // Note: getDay() returns 0 on Sunday
  35. if (key === 'a') {
  36. return ['日', '一', '二', '三', '四', '五', '六'][value]
  37. }
  38. if (result.length > 0 && value < 10) {
  39. value = '0' + value
  40. }
  41. return value || 0
  42. })
  43. return time_str
  44. }