時間戳的轉換

一般我們獲取時間的時候,后臺返回給我們的是一個很長串的數(shù)字(比如1494225027666),我們應該怎樣轉換成我們前端看得懂的時間呢(比如05-08 23:12)?

html

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width,target-densitydpi=medium-dpi,initial-scale=1, maximum-scale=1">
        <title></title>
        <script src="js/vue.js"></script>
    </head>
    <body>
        <div id="container">
            <span>{{dateStr(1498702792*1000)}}</span>
        </div>
        <script src="js/common.js"></script>
    </body>
</html>

common.js

new Vue({
    el:'#container',
    data:{
        
    },
    methods:{
        dateObject: function(timestamp) {
                //var timestamp = Number(timestamp);
                var time = new Date(timestamp);
                var Y = time.getFullYear(); //年
                var m = ('0' + (time.getMonth() + 1)).substr(-2); //月
                var d = ('0' + time.getDate()).substr(-2); //日
                var H = ('0' + time.getHours()).substr(-2); //時
                var i = ('0' + time.getMinutes()).substr(-2); //分
                var s = ('0' + time.getSeconds()).substr(-2); //秒

                return {
                    'Y': Y,
                    'm': m,
                    'd': d,
                    'H': H,
                    'i': i,
                    's': s
                }
        },
        daysDiffer: function(start_time, end_time) {
                var start_date_obj = this.dateObject(start_time),
                    end_date_obj = this.dateObject(end_time);
                var start_date_time = new Date(start_date_obj.Y, start_date_obj.m - 1, start_date_obj.d);
                var end_date_time = new Date(end_date_obj.Y, end_date_obj.m - 1, end_date_obj.d);
                var d_days = parseInt((start_date_time - end_date_time) / 1000 / 60 / 60 / 24); //把相差的毫秒數(shù)轉換為天數(shù) 
                return d_days;
            },
        /**
         *  當天的時間顯示為:hh:mm
            昨天的時間顯示為:昨天hh:mm
            同一年里比昨天更早的時間顯示為:MM-DD hh:mm
            不同年份的時間顯示為:YYYY-MM-DD hh:mm
         * @param {Object} timestamp
         */
            dateStr: function(timestamp) {
                var date_obj = this.dateObject(timestamp);
                var diff_days = this.daysDiffer(timestamp, (new Date().getTime()));
                if(diff_days == 0) {
                    return date_obj.H + ':' + date_obj.i;
                }
                if(diff_days == -1) {
                    return '昨天' + date_obj.H + ':' + date_obj.i;
                }
                if(diff_days < -1 && date_obj.Y != this.dateObject(new Date().getTime()).Y) {
                    return date_obj.Y + '-' + date_obj.m + '-' + date_obj.d + ' ' + date_obj.H + ':' + date_obj.i;
                } else {
                    return date_obj.m + '-' + date_obj.d + ' ' + date_obj.H + ':' + date_obj.i;
                }

            }

    }
    
})

大家可以嘗試一下哦!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容