封裝時間戳轉換方法

今天小汪寫的是一個簡便的時間戳轉換的方法,由於項目中有好幾處需要展示時間,但是後臺大多都是返回的時間戳(毫秒,或者秒),每次寫轉換的方法太過麻煩,有需要的夥伴如果看到我的帖子,複製即可。如果幫到各位,嘿嘿 老規矩喲。

function conversionTime(timestamp, format){
    //timestamp = 時間戳  format = 格式
    let data = timestamp.toString().length < 13 ?  new Date(timestamp*1000) : new Date(timestamp);//判斷時間戳是否需要*1000
    let Y = data.getFullYear(); //獲取傳入時間戳的年
    let M = data.getMonth()+1; //獲取月份
    let D = data.getDate(); //獲取當前天
    let H = data.getHours() < 10 ? `0${data.getHours()}` : data.getHours();  //小時>10 時默認在前面加0
    let m = data.getMinutes() < 10 ? `0${data.getMinutes()}` : data.getMinutes(); //分鐘>10時默認在前面加0
    let s = data.getSeconds() < 10 ? `0${data.getSeconds()}` : data.getSeconds(); //秒>10時默認在前面加0
    format = format || 'Y-M-D H:m:s';//設定一個默認格式
    format = format.indexOf('Y') > -1 ? format.replace('Y', Y) : format;
    format = format.indexOf('M') > -1 ? format.replace('M', M) : format;
    format = format.indexOf('D') > -1 ? format.replace('D', D) : format;
    format = format.indexOf('H') > -1 ? format.replace('H', H) : format;
    format = format.indexOf('h') > -1 ? format.replace('h', H > 12 ? H - 12 : H) : format;//傳H則是24小時制 h則是12小時制
    format = format.indexOf('m') > -1 ? format.replace('m', m) : format;
    format = format.indexOf('s') > -1 ? format.replace('s', s) : format;
    console.log(format);
  }
  conversionTime(1586087763000);//打印結果:2020-4-5 19:56:03
  conversionTime(1586087763,"Y-M-D H:m:s");//打印結果:2020-4-5 19:56:03
  conversionTime(1586087763,"Y/M/D h:m:s");//打印結果:2020/4/5 7:56:03
  conversionTime(1586087763,"Y年M月D日 H:m:s");//打印結果:2020年4月5日 19:56:03

因爲小汪水準不高,所以這個封裝比較簡單,主要也是爲了自己需要的時候不用重新花時間去寫,大佬不喜輕點噴。小夥伴 下篇再見啦。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章