js時間戳轉換為"yyyy-MM-dd hh:mm:ss"格式(借用正則)

今天記錄一種使用正則表達式將時間戳(如“1469261964000”)轉換為 yyyy-MM-dd hh:mm 格式時間(如“2018-12-6 15:27”)的方法。

一、背景知識

先介紹一些相關知識點。

  1. 時間戳

此處指 JS 時間戳,是當前時間到 1970年1月1日00:00:00 UTC 對應的毫秒數(shù),和 unix 時間戳并非同一概念(表示秒數(shù))。

  1. 正則表達式

參考 廖雪峰-正則表達式

正則中用"()"括起來的部分表示子串(分組);
$1表示第一個子串中的內(nèi)容,$2表示第二個,依此類推...

二、具體實現(xiàn)

function farmatDate(time, fmt) {
  if (/(y+)/.test(fmt) {
    fmt = fmt.replace(RegExp.$1, date.getFullYear() + '').substr(4 - RegExp.$1.length);
  }

  let o = {
    'M+': getMonth() + 1,
    'd+': getDay(),
    'h+': getHours(),
    'm+': getMinutes(),
    's+': getSeconds()
  };

  for (let key in o) {
    if(RegExp(`(${key})`.test(fmt)) {
      let str = o[key] + '';
      fmt = fmt.replace(RegExp.$1, str.length === 2 ? str:padLeftZero(str);
    }
  }
  return fmt;
}

// 函數(shù) padLeftZero 的作用:如果月份為1位(如9),則在其左邊補0(變?yōu)?9)
function padLeftZero(str) {
  return '00' + substr(str.length);
}

// 舉例
let res = formatDate('1469261964000', 'yyyy-MM-dd hh:mm');
console.log(res); // 2016-07-06 16:19
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 1 Object 對象 教程:https://wangdoc.com/javascript/stdlib/obje...
    智勇雙全的小六閱讀 2,504評論 0 0
  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學一百閱讀 3,679評論 0 4
  • 推薦幾個正則表達式編輯器 Debuggex :https://www.debuggex.com/ PyRegex:...
    木易林1閱讀 11,852評論 9 151
  • ??引用類型的值(對象)是引用類型的一個實例。 ??在 ECMAscript 中,引用類型是一種數(shù)據(jù)結構,用于將數(shù)...
    霜天曉閱讀 1,219評論 0 1
  • 謙謙君子溫潤如玉。是對君子最好的贊揚了吧,多美的詞,這句話讓我滿心歡喜。 然而,在現(xiàn)實中,我們也許覺得見不到也...
    龍貝子閱讀 975評論 0 1

友情鏈接更多精彩內(nèi)容