1. 程式人生 > >一份js格式化Date的程式碼

一份js格式化Date的程式碼

不記得從哪裡抄過來的,用了幾次,還挺好用的,留在這裡做個記錄。
百度一下,上Google應該很快能搜到相關的程式碼。
話說js不直接提供格式化的方法嗎?還是我不知道呢?


export const dateTime = {
  /**
     * 根據標準時間格式(yyyy-MM-dd HH:mm:ss)獲得時間
     */
  getDateByFormat (dateStr) {
    dateStr = dateStr.replace('-', '/')
    return new Date(Date.parse(dateStr))
  },
  /**
   * 根據模板獲得時間的格式化
   */
  dateFormat (date, formatStr = 'yyyy-MM-dd HH:mm:ss') {
  // 轉換成Date型別
    date = new Date(date)
    const opt = {
      'yyyy': date.getFullYear(),
      'MM': addZero(date.getMonth() + 1),
      'M': date.getMonth() + 1,
      'dd': addZero(date.getDate()),
      'd': date.getDate(),
      'HH': addZero(date.getHours()),
      'H': date.getHours(),
      'mm': addZero(date.getMinutes()),
      'm': date.getMinutes(),
      'ss': addZero(date.getSeconds()),
      's': date.getSeconds()
    }

    // 如果是個位數則前面新增0
    function addZero (value) {
      return value < 10 ? '0' + value : value
    }

    // 遍歷替換
    for (const k in opt) {
      formatStr = formatStr.replace(k, opt[k])
    }
    return formatStr
  },
  /**
 * 標準時間格式
 */
  formatPattern: 'yyyy-MM-dd HH:mm:ss'
}