index.js 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. export function parseTime(time, cFormat) {
  2. if (arguments.length === 0 || !time) {
  3. return null
  4. }
  5. const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}'
  6. let date
  7. if (typeof time === 'object') {
  8. date = time
  9. } else {
  10. if ((typeof time === 'string')) {
  11. if ((/^[0-9]+$/.test(time))) {
  12. // support "1548221490638"
  13. time = parseInt(time)
  14. } else {
  15. // support safari
  16. // https://stackoverflow.com/questions/4310953/invalid-date-in-safari
  17. time = time.replace(new RegExp(/-/gm), '/')
  18. }
  19. }
  20. if ((typeof time === 'number') && (time.toString().length === 10)) {
  21. time = time * 1000
  22. }
  23. date = new Date(time)
  24. }
  25. const formatObj = {
  26. y: date.getFullYear(),
  27. m: date.getMonth() + 1,
  28. d: date.getDate(),
  29. h: date.getHours(),
  30. i: date.getMinutes(),
  31. s: date.getSeconds(),
  32. a: date.getDay()
  33. }
  34. const time_str = format.replace(/{([ymdhisa])+}/g, (result, key) => {
  35. const value = formatObj[key]
  36. // Note: getDay() returns 0 on Sunday
  37. if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value ] }
  38. return value.toString().padStart(2, '0')
  39. })
  40. return time_str
  41. }
  42. /**
  43. * @param {string} url
  44. * @returns {Object}
  45. */
  46. export function getQueryObject(url) {
  47. url = url == null ? window.location.href : url
  48. const search = url.substring(url.lastIndexOf('?') + 1)
  49. const obj = {}
  50. const reg = /([^?&=]+)=([^?&=]*)/g
  51. search.replace(reg, (rs, $1, $2) => {
  52. const name = decodeURIComponent($1)
  53. let val = decodeURIComponent($2)
  54. val = String(val)
  55. obj[name] = val
  56. return rs
  57. })
  58. return obj
  59. }
  60. // 只能转换 4000 以下的正整数阿拉伯数字
  61. export function NumConvertLM(num) {
  62. var Roman = [['', 'I', 'Ⅱ', 'Ⅲ', 'Ⅳ', 'Ⅴ', 'Ⅵ', 'Ⅶ', 'Ⅷ', 'Ⅸ'],
  63. ['', 'X', 'XX', 'XXX', 'XL', 'L', 'LX', 'LXX', 'LXXX', 'XC'],
  64. ['', 'C', 'CC', 'CCC', 'CD', 'D', 'DC', 'DCC', 'DCCC', 'CM'],
  65. ['', 'M', 'MM', 'MMM', ' ', ' ', ' ', ' ', ' ', ' ']]
  66. if (isNaN(num)) return num
  67. var ReverseArr = num.toString().split('').reverse()
  68. var CorrectArr = []
  69. for (var i = 0; i < ReverseArr.length; i++) {
  70. CorrectArr.unshift(Roman[i][ReverseArr[i]])
  71. }
  72. return CorrectArr.join('')
  73. }
  74. export function getTime(day=0) {
  75. let date =new Date();
  76. let y=date.getFullYear()
  77. let m=date.getMonth()
  78. let d=date.getDate()
  79. let today=new Date(`${y}-${m+1}-${d}`)
  80. return parseTime(new Date(today.getTime()+day*60*60*24*1000))
  81. }
  82. export function Uint8ArrayToString(fileData){
  83. var dataString = "";
  84. for (var i = 0; i < fileData.length; i++) {
  85. dataString += String.fromCharCode(fileData[i]);
  86. }
  87. return dataString
  88. }