1. 程式人生 > >js 日期時間格式轉換 時間戳轉換

js 日期時間格式轉換 時間戳轉換

1.時間戳轉換成日期時間格式     // 1395849600000  => 2014-03-27 00:00:00

1-最直接易讀的轉換

 var oldTime = 1395849600000 ; // 2014-03-27 00:00:00
    function formatDateTime(date) {
        var time = new Date(date);  // 例項化時間戳  time.後面的是時間獲取轉換的對應方法
        var hour = time.getHours();
        var minute = time.getMinutes();
        var second = time.getSeconds();
        var year = time.getFullYear()
        var month = time.getMonth();
        var date = time.getDate();
        month = month + 1;                       // 月份要多加一個月(不知道就自行google)
        if( month < 10){ month = "0" + month};   // if判斷是少於兩位數就補0
        if( date < 10){ date= "0" + date  };
        if( hour < 10){ hour= "0" + hour };
        if( minute < 10){ minute= "0" + minute};
        if( second < 10){ second= "0" + second};
        return  year + "-" + month + "-" + date + " " + hour + ":" + minute + ":" +second;
    }
    var formatTime = formatDateTime(oldTime);   // 呼叫formatDateTime函式並賦值給formatTime
    console.log(formatTime)

但是,上面的方法看起來有點多,我想繼續改改吧。

let oldTime = 1395849600000 ; // 2014-03-27 00:00:00
    function formatDateTime(date) {
        let t= new Date(date);         // 例項化時間戳  time.後面的是時間獲取轉換的對應方法
        let y = t.getFullYear();        
        let m = t.getMonth()+1;         // 月份要多加一個月(不知道就自行google)
        let d = t.getDate();
        let h = t.getHours();
        let min = t.getMinutes();
        let s = t.getSeconds();      
        // 返回給外面呼叫它的地方(需要的格式也在return後面拼裝)
        return  y + "-" + (m<10?m="0"+m:m) +"-" + (d<10?d="0"+d:d) + " " +
(h<10?h="0"+h:h) + ":" + (min<10?min="0"+min:min) + ":" + (s<10?s="0"+s:s); 
    }
    let formatTime = formatDateTime(oldTime); // 呼叫formatDateTime函式並賦值給formatTime
    console.log(oldTime,formatTime)

這樣return後面就寫著很長了(雖然+號可以換行),看起來怪怪的,那就繼續改改吧。

let oldTime = 1395849600000 ; // 2014-03-27 00:00:00
    function formatDateTime(date) {
        let t = new Date(date);   // 例項化時間戳  time.後面的是時間獲取轉換的對應方法
        let y = t.getFullYear();
        let m = t.getMonth()+1<10?"0"+t.getMonth():t.getMonth();                          
        let d = t.getDate()<10?"0"+t.getDate():t.getDate(); 
        let h = t.getHours()<10?"0"+t.getHours():t.getHours();
        let min = t.getMinutes()<10?"0"+t.getMinutes():t.getMinutes();
        let s = t.getSeconds()<10?"0"+t.getSeconds():t.getSeconds();                     
        return  y+"-"+m+"-"+d+" "+h+":"+min+":"+s;   // 返回給外面呼叫它的地方
    }
    let formatTime = formatDateTime(oldTime);  // 呼叫formatDateTime函式並賦值給formatTime
    console.log(oldTime,formatTime)

如果你的時間格式不一定要兩位數值的,可以這樣寫,簡單。

let oldTime = 1395849600000 ; // 2014-03-27 00:00:00
    function formatDateTime(date) {
        let t = new Date(date);   // 例項化時間戳  time.後面的是時間獲取轉換的對應方法                
        return  t.getFullYear()+"-"+(t.getMonth()+1)+"-"+t.getDate()+" "+t.getHours()+":"+t.getMinutes()+":"+t.getSeconds();   // 返回給外面呼叫它的地方
    }
    let formatTime = formatDateTime(oldTime);// 呼叫formatDateTime函式並賦值給formatTime
    console.log(oldTime,formatTime)

你還有什麼更好的方法或者建議,歡迎留言