博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JS时间转时间戳,时间戳转时间。时间显示模式。
阅读量:5746 次
发布时间:2019-06-18

本文共 4209 字,大约阅读时间需要 14 分钟。

函数内容

// 时间转为时间戳function date2timestamp(datetime) {    var timestamp = new Date(Date.parse(datetime));    timestamp = timestamp.getTime();    timestamp = timestamp / 1000;    return timestamp;}// 时间戳转时间function timestamp2date(timestamp, mode) {    var tt = new Date(parseInt(timestamp) * 1000).toLocaleString().replace(/:\d{1,2}$/, ' ').replace(/年|月/g, "-").replace(/日/g, " ").replace(/上午/g, "").replace(/下午/g, "");    var date_arr = tt.split(" ");    if (mode == 3) {        var minute = 60;        var hour = minute * 60;        var day = hour * 24;        var halfamonth = day * 15;        var month = day * 30;        var current_timestamp = parseInt(Date.parse(new Date()) / 1000);        var diffValue = current_timestamp - timestamp;        var monthC = diffValue / month;        var weekC = diffValue / (7 * day);        var dayC = diffValue / day;        var hourC = diffValue / hour;        var minC = diffValue / minute;        if (monthC >= 1) {            result = parseInt(monthC) + "月前";        }        else if (weekC >= 1) {            result = parseInt(weekC) + "周前";        }        else if (dayC >= 1) {            result = parseInt(dayC) + "天前";        }        else if (hourC >= 1) {            result = parseInt(hourC) + "小时前";        }        else if (minC >= 1) {            result = parseInt(minC) + "分钟前";        } else            result = "刚刚";        return result;    }    if (mode == 2) {        var current_timestamp = parseInt(Date.parse(new Date()) / 1000);        if ((current_timestamp - timestamp) > 7 * 24 * 60 * 60) {            // 一周之前,显示日期            return date_arr[0];        } else {            var d = new Date();            var date = d.getFullYear() + "/" + (d.getMonth() + 1) + "/" + d.getDate();            var b_date = date2timestamp(date + " 00:00:00");            var e_date = date2timestamp(date + " 23:59:59");            if (parseInt(timestamp) > parseInt(b_date) && parseInt(timestamp) < parseInt(e_date)) {                // 今天,只显示时间                return date_arr[1];            }            if (parseInt(timestamp) > parseInt(b_date - 24 * 60 * 60) && parseInt(timestamp) < parseInt(e_date - 24 * 60 * 60)) {                // 昨天,显示昨天                return "昨天";            }            // 显示周几            var days = new Array("星期日","星期一","星期二","星期三","星期四","星期五","星期六");            var day  = new Date(date_arr[0]).getDay();            return days[day];        }    }    if (mode == 1) {        // 如果是当天,就不显示日期        var d = new Date();        var date = d.getFullYear() + "/" + (d.getMonth() + 1) + "/" + d.getDate();        var b_date = date2timestamp(date + " 00:00:00");        var e_date = date2timestamp(date + " 23:59:59");        if (parseInt(timestamp) > parseInt(b_date) && parseInt(timestamp) < parseInt(e_date)) {            return date_arr[1];        }        return tt;    }    return tt;}// 1498806947 2017.6.30 15:15// 1498720547 2017.6.29 15:15// 1498634147 2017.6.28 15:15// 1497942947 2017.6.20 15:15console.log(timestamp2date('1498806947', 3));console.log(timestamp2date('1498720547', 3));console.log(timestamp2date('1498634147', 3));console.log(timestamp2date('1497942947', 3));console.log("-------------------------------");console.log(timestamp2date('1498806947', 2));console.log(timestamp2date('1498720547', 2));console.log(timestamp2date('1498634147', 2));console.log(timestamp2date('1497942947', 2));console.log("-------------------------------");console.log(timestamp2date('1498806947', 1));console.log(timestamp2date('1498720547', 1));console.log(timestamp2date('1498634147', 1));console.log(timestamp2date('1497942947', 1));console.log("-------------------------------");console.log(timestamp2date('1498806947'));console.log(timestamp2date('1498720547'));console.log(timestamp2date('1498634147'));console.log(timestamp2date('1497942947'));

执行结果

1小时前1天前2天前1周前-------------------------------15:15昨天星期三2017-06-20-------------------------------15:152017-06-29 15:15 2017-06-28 15:15 2017-06-20 15:15 -------------------------------2017-06-30 15:15 2017-06-29 15:15 2017-06-28 15:15 2017-06-20 15:15

小结

JS对于时间戳处理不太便捷。需要自己计算处理。根据需要,显示不同的时间模式。

本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/7099489.html,如需转载请自行联系原作者

你可能感兴趣的文章
lv扩展磁盘空间
查看>>
java8之stream流的基本操作
查看>>
二维数组计算协方差java
查看>>
SpringBoot下Redis相关配置是如何被初始化的
查看>>
为你的AliOS Things应用增加自定义cli命令
查看>>
MongoDB 创建基础索引、组合索引、唯一索引以及优化
查看>>
百度PaddlePaddle常规赛NLP赛道火热开启
查看>>
稳了!这才是cookie,session与token的真正区别
查看>>
OSChina 周二乱弹 —— 假期余额已不足!
查看>>
前端那些事之React篇--helloword
查看>>
ios的google解析XML框架GDataXML的配置及使用
查看>>
netty-当一个客户端连接到来的时候发生了什么
查看>>
PHP_5.3.20 源码编译安装PHP-FPM
查看>>
在51CTO三年年+了,你也来晒晒
查看>>
js控制图片等比例缩放
查看>>
Java高级开发工程师面试考纲
查看>>
FreeMarker表达式
查看>>
Debian9.2 下使用vnstat查看服务器带宽流量统计
查看>>
NGINX + PHP-FPM 502
查看>>
mysql数据备份与恢复
查看>>