模仿微信聊天时间戳转换效果

代码语言:html

所属分类:其他

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<script>
//微信聊天内容时间显示
    function timestampFormat(timestamp) {
        function zeroize(num) {
            return (String(num).length == 1 ? '0': '') + num;
        }

        var curTimestamp = parseInt(new Date().getTime() / 1000); //当前时间戳
        var timestampDiff = curTimestamp - timestamp; // 参数时间戳与当前时间戳相差秒数

        var curDate = new Date(curTimestamp * 1000); // 当前时间日期对象
        var tmDate = new Date(timestamp * 1000); // 参数时间戳转换成的日期对象

        var Y = tmDate.getFullYear(),
        m = tmDate.getMonth() + 1,
        d = tmDate.getDate();
        var H = tmDate.getHours(),
        i = tmDate.getMinutes(),
        s = tmDate.getSeconds();

        if (timestampDiff < 60) {
            // 一分钟以内
            return "刚刚";
        } else if (timestampDiff < 3600) {
            // 一小时前之内
            return Math.floor(timestampDiff / 60) + "分钟前";
        } else if (curDate.getFullYear() == Y && curDate.getMonth()+1 == m && curDate.getDate() == d) {
            return '今天' + zeroize(H) + ':' + zeroize(i);
        } else {
            var newDate = new Date((curTimestamp - 86400) * 1000); // 参数中的时间戳加一天转换成的日期对象
            if (newDate.getFullYear() == Y && newDate.getMonth()+1 == m && newDate.getDate() == d) {
                return '昨天' + zeroize(H) + ':' + zeroize(i);
            } else if (curDate.getFullYear() == Y) {
                return  zeroize(m) + '月' + zeroize(d) + '日 ' + zeroize(H) + ':' + zeroize(i);
            } else {
                return  Y + '年' + zeroize(m) + '月' + zeroize(d) + '日 ' + zeroize(H) + ':' + zeroize(i);
            }
        }
    }

    console.log(timestampFormat(Date.parse('2019-10-11 15:26:10')/1000)); //刚刚
    console.log(timestampFormat(Date.parse('2019-10-11 15:10:10')/1000)); //16分钟前
    console.log(timestampFormat(Date.parse('2019-10-11 10:10:10')/1000)); //今天10:10
    console.log(timestampFormat(Date.parse('2019-10-10 10:10:10')/1000)); //昨天10:10
    console.log(timestampFormat(Date.parse('2019-02-10 10:10:10')/1000)); //02月10日 10:10
    console.log(timestampFormat(Date.parse('2019-10-10 10:10:10')/1000)); //2012年10月10日 10:10

//微信聊天会话列表时间显示
    function wxtimestampFormat(timestamp) {
        function zeroize(num) {
            return (String(num).length == 1.........完整代码请登录后点击上方下载按钮下载查看

网友评论0