vue3毫秒級時間戳轉換

ranblogs發表於2024-05-31

Unix 時間戳是從1970年1月1日(UTC/GMT的午夜)開始所經過的秒數,不考慮閏秒。

以下2個方法源自於時間工具包:time utils

效果展示:線上時間戳轉換工具

時間轉時間戳

/**
 * 將某個時間轉化成時間戳
 * 時間格式:2019-05-20 00:00:00 或 2019年5月1日 00:00:00
 * 返回值:1556640000000,13位時間戳
 */
function Jh_convertTimeStamp(time: string): number {
  // 用正則主要是把“2019-05-20 00:00:00”轉換成“2019/05/20 00:00:00”相容ios
  let newTime = time.replace(/-|\./g, '/')
  // console.log(newTime);
  // newTime = newTime.replace(/\./g, "-");
  newTime = newTime.replace(/年/g, '/')
  newTime = newTime.replace(/月/g, '/')
  newTime = newTime.replace(/日/g, '')
  if (newTime.length === 4) {
    newTime = newTime + '/01/01 00:00:00'
  }
  if (newTime.length === 7) {
    newTime = newTime + '/01 00:00:00'
  }
  if (newTime.length === 10) {
    newTime = newTime + ' 00:00:00'
  }
  if (newTime.length === 16) {
    newTime = newTime + ':00'
  }
  return Date.parse(newTime)
}

使用示例

let res = Jh_convertTimeStamp('2024-05-31 14:16:39')

時間戳轉換時間

/**
 * 將某個時間戳轉化成 指定格式時間
 * @param {date} time 時間  new Date().getTime()
 * @param {string} cFormat {y}-{m}-{d} {h}:{i}:{s} {w}
 */
function Jh_timeStampToTime(time: string | number | Date, cFormat: string): string {
  if (arguments.length === 0) {
    return ''
  }
  const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}'
  let date: Date
  if (typeof time === 'object') {
    date = time as Date
  } else {
    if (('' + time).length === 10) time = parseInt(time as string) * 1000
    date = new Date(time)
  }

  const formatObj: any = {
    y: date.getFullYear(),
    m: date.getMonth() + 1,
    d: date.getDate(),
    h: date.getHours(),
    i: date.getMinutes(),
    s: date.getSeconds(),
    w: date.getDay()
  }
  const time_str = format.replace(/{(y|m|d|h|i|s|w)+}/g, (result, key) => {
    let value = formatObj[key]
    if (key === 'w') {
      return ['日', '一', '二', '三', '四', '五', '六'][value]
    }
    if (result.length > 0 && value < 10) {
      value = '0' + value
    }
    return value || 0
  })
  return time_str
}

使用示例:

let res = Jh_timeStampToTime(1717136199178, '{y}-{m}-{d} {h}:{i}:{s}')

Tools-Web是一個免費開源工具站;只需簡單幾步,即可快速搭建屬於自己的綜合工具站,支援docker一鍵部署。

相關文章