获取时间差

10、11、13位时间戳都适用

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="public/vue.min.js"></script>

</head>

<body>
    <div id="app">

    </div>
</body>
<script>
    var vm = new Vue({
        el: "#app",
        data() {
            return {
                date: 16613913611,
                list: [
                    {time:16613913611},
                    {time:16613912999},
                    {time:16613909121},
                    {time:16613009121},
                ],
            }
        },

        created() {},
        mounted() {
            this.list.forEach(i => {
                console.log('时间差:'+this.dateDiff_t(i.time, this.date))
                console.log('列表时间:'+this.formatDate(i.time))
                console.log('当前时间:'+this.formatDate(this.date))
            });
        },
        methods: {
            //格式化时间戳
            formatDate(value) {
                let date = new Date(value * 1000);
                let y = date.getFullYear();
                let MM = date.getMonth() + 1;
                MM = MM < 10 ? ('0' + MM) : MM;
                let d = date.getDate();
                d = d < 10 ? ('0' + d) : d;
                let h = date.getHours();
                h = h < 10 ? ('0' + h) : h;
                let m = date.getMinutes();
                m = m < 10 ? ('0' + m) : m;
                let s = date.getSeconds();
                s = s < 10 ? ('0' + s) : s;
                return y + '年' + MM + '月' + d + '日' + h + ':' + m + ':' + s;
            },
            //计算时间差
            dateDiff_t(st, et) {
                var time;
                var stime = st;
                var etime = et;
                // 两个时间戳相差的秒数
                var usedTime = (etime- stime)*1000;
                // 计算相差的天数
                var days = Math.floor(usedTime / (24 * 3600 * 1000));
                // 计算出小时数
                var hours = Math.floor(usedTime / (3600 * 1000));
                // 计算相差分钟数
                var minutes = Math.floor(usedTime / (60 * 1000)); 

                // 时间差小于1分钟
                if(days === 0 && hours === 0 && minutes === 0){
                    time = '刚刚'
                }
                // 时间差小于10分钟
                else if(days === 0 && hours === 0 && minutes < 10){
                    time = minutes + '分钟前'
                }
                // 时间差大于10分钟
                else {
                    time = this.formatDate(stime)
                }
                return time;
            },
        },
    });
</script>

</html>
posted @ 2022-08-24 16:03  JaneLifeVlog  阅读(55)  评论(0)    收藏  举报