• js 时间戳转为日期格式


    js 时间戳转为日期格式

    什么是Unix时间戳(Unix timestamp): Unix时间戳(Unix timestamp),或称Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。Unix时间戳不仅被使用在Unix系统、类Unix系统中,也在许多其他操作系统中被广泛采用。

    目前相当一部分操作系统使用32位二进制数字表示时间。此类系统的Unix时间戳最多可以使用到格林威治时间2038年01月19日03时14分07秒(二进制:01111111 11111111 11111111 11111111)。其后一秒,二进制数字会变为10000000 00000000 00000000 00000000,发生溢出错误,造成系统将时间误解为1901年12月13日20时45分52秒。这很可能会引起软件故障,甚至是系统瘫痪。使用64位二进制数字表示时间的系统(最多可以使用到格林威治时间292,277,026,596年12月04日15时30分08秒)则基本不会遇到这类溢出问题。

    一.js将时间转换成时间戳

    1.js获取当前时间戳的方法

    var timestamp1 = Date.parse(new Date());
    var timestamp2 = (new Date()).valueOf();
    var timestamp3 = new Date().getTime();

    第一种:获取的时间戳是把毫秒改成000显示,第二种和第三种是获取了当前毫秒的时间戳。

    2.js获取制定时间戳的方法

    var oldTime = (new Date("2015/06/23 08:00:20")).getTime()/1000;

    getTime()返回数值的单位是毫秒。

    演示

    二.js把时间戳转为为普通日期格式

    1.Date toLocaleString方法

    function getLocalTime(nS) {     
       return new Date(parseInt(nS) * 1000).toLocaleString().replace(/:d{1,2}$/,' ');     
    }

    parseInt() 函数可解析一个字符串,并返回一个整数。

    js中时间操作单位是毫秒。

    toLocaleString() 方法可根据本地时间把 Date 对象转换为字符串,并返回结果。

    replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

    replace(/:d{1,2}$/,' ')验证替换以:开始有一位或二位数字的结束字符串,就是秒;替换为空

    显示如下:

    image

    演示

    所以我们可以利用正则表达式改变我们想要的日期格式。

    2.Date 属性方法

    复制代码
    复制代码
    function add0(m){return m<10?'0'+m:m }
    function format(shijianchuo)
    {
    //shijianchuo是整数,否则要parseInt转换
    var time = new Date(shijianchuo);
    var y = time.getFullYear();
    var m = time.getMonth()+1;
    var d = time.getDate();
    var h = time.getHours();
    var mm = time.getMinutes();
    var s = time.getSeconds();
    return y+'-'+add0(m)+'-'+add0(d)+' '+add0(h)+':'+add0(mm)+':'+add0(s);
    }
    复制代码
    复制代码

    image

    演示

    三.大神张鑫旭

    https://www.zhangxinxu.com/php/microCodeDetail?id=10

    复制代码
    复制代码
    
    
    /*
    ** 时间戳转换成指定格式日期
    ** eg. 
    ** dateFormat(11111111111111, 'Y年m月d日 H时i分')
    ** → "2322年02月06日 03时45分"
    */
    var dateFormat = function (timestamp, formats) {
        // formats格式包括
        // 1. Y-m-d
        // 2. Y-m-d H:i:s
        // 3. Y年m月d日
        // 4. Y年m月d日 H时i分
        formats = formats || 'Y-m-d';
    
        var zero = function (value) {
            if (value < 10) {
                return '0' + value;
            }
            return value;
        };
    
        var myDate = timestamp? new Date(timestamp): new Date();
    
        var year = myDate.getFullYear();
        var month = zero(myDate.getMonth() + 1);
        var day = zero(myDate.getDate());
    
        var hour = zero(myDate.getHours());
        var minite = zero(myDate.getMinutes());
        var second = zero(myDate.getSeconds());
    
        return formats.replace(/Y|m|d|H|i|s/ig, function (matches) {
            return ({
                Y: year,
                m: month,
                d: day,
                H: hour,
                i: minite,
                s: second
            })[matches];
        });
    };
     
    复制代码

    -------------------------------------------------------------------------------------------------------------------------------------

    https://www.zhangxinxu.com/php/microCodeDetail?id=11

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    var dateDiff = function (timestamp) {
        // 补全为13位
        var arrTimestamp = (timestamp + '').split('');
        for (var start = 0; start < 13; start++) {
            if (!arrTimestamp[start]) {
                arrTimestamp[start] = '0';
            }
        }
        timestamp = arrTimestamp.join('') * 1;
     
        var minute = 1000 * 60;
        var hour = minute * 60;
        var day = hour * 24;
        var halfamonth = day * 15;
        var month = day * 30;
        var now = new Date().getTime();
        var diffValue = now - timestamp;
     
        // 如果本地时间反而小于变量时间
        if (diffValue < 0) {
            return '不久前';
        }
     
        // 计算差异时间的量级
        var monthC = diffValue / month;
        var weekC = diffValue / (7 * day);
        var dayC = diffValue / day;
        var hourC = diffValue / hour;
        var minC = diffValue / minute;
     
        // 数值补0方法
        var zero = function (value) {
            if (value < 10) {
                return '0' + value;
            }
            return value;
        };
     
        // 使用
        if (monthC > 12) {
            // 超过1年,直接显示年月日
            return (function () {
                var date = new Date(timestamp);
                return date.getFullYear() + '年' + zero(date.getMonth() + 1) + '月' + zero(date.getDate()) + '日';
            })();
        else if (monthC >= 1) {
            return parseInt(monthC) + "月前";
        else if (weekC >= 1) {
            return parseInt(weekC) + "周前";
        else if (dayC >= 1) {
            return parseInt(dayC) + "天前";
        else if (hourC >= 1) {
            return parseInt(hourC) + "小时前";
        else if (minC >= 1) {
            return parseInt(minC) + "分钟前";
        }
        return '刚刚';
    };
  • 相关阅读:
    【经验】Linux常用命令——内存相关
    【经验】Windows开发环境搭建
    【工具】Vue开发工具栈
    【经验】Linux常用命令——进程相关
    【经验】Linux基础知识
    Java_OAexp工具设计及实现 | Thelostworld_OA
    常用总结
    BootStrap使用
    作业5 身份认证
    lambda示例
  • 原文地址:https://www.cnblogs.com/xiondun/p/13370592.html
Copyright © 2020-2023  润新知