zoukankan      html  css  js  c++  java
  • javascript格式化时间(几秒钟前,几分钟前,几小时前,几天前...)

    beautify_time: function(timestamp) {
        var mistiming = Math.round(new Date() / 1000) - timestamp;
        var postfix = mistiming > 0 ? '前' : '后'
        mistiming = Math.abs(mistiming)
        var arrr = ['年', '个月', '星期', '天', '小时', '分钟', '秒'];
        var arrn = [31536000, 2592000, 604800, 86400, 3600, 60, 1];
    
        for (var i = 0; i < 7; i++) {
          var inm = Math.floor(mistiming / arrn[i])
          if (inm != 0) {
            return inm + arrr[i] + postfix
          }
        }
      },

    调用方式

     var timestamp3 = new Date('2018-10-30 20:08:23') / 1000;
        console.log(timestamp3, this.beautify_time(timestamp3))

    将时间戳转换成日期格式:

    function timestampToTime(timestamp) {
            var date = new Date(timestamp * 1000);//时间戳为10位需*1000,时间戳为13位的话不需乘1000
            var Y = date.getFullYear() + '-';
            var M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-';
            var D = date.getDate() + ' ';
            var h = date.getHours() + ':';
            var m = date.getMinutes() + ':';
            var s = date.getSeconds();
            return Y+M+D+h+m+s;
        }
        timestampToTime(1403058804);
        console.log(timestampToTime(1403058804));//2014-06-18 10:33:24

    注意:如果是Unix时间戳记得乘以1000。比如:PHP函数time()获得的时间戳就要乘以1000。

    2. 将日期格式转换成时间戳:

    var date = new Date('2014-04-23 18:55:49:123');
        // 有三种方式获取
        var time1 = date.getTime();
        var time2 = date.valueOf();
        var time3 = Date.parse(date);
        console.log(time1);//1398250549123
        console.log(time2);//1398250549123
        console.log(time3);//1398250549000

    以上三种获取方式的区别:

      第一、第二种:会精确到毫秒

      第三种:只能精确到秒,毫秒用000替代

      以上三个输出结果可观察其区别

      注意:获取到的时间戳除以1000就可获得Unix时间戳,就可传值给后台得到。

    beautify_time: function(timestamp) {
    var mistiming = Math.round(new Date() / 1000) - timestamp;
    var postfix = mistiming > 0 ? '前' : '后'
    mistiming = Math.abs(mistiming)
    var arrr = ['年', '个月', '星期', '天', '小时', '分钟', '秒'];
    var arrn = [31536000, 2592000, 604800, 86400, 3600, 60, 1];

    for (var i = 0; i < 7; i++) {
    var inm = Math.floor(mistiming / arrn[i])
    if (inm != 0) {
    return inm + arrr[i] + postfix
    }
    }
    },
  • 相关阅读:
    [Tip: VS debugging]F5 VS Ctrl +F5
    C#: boxing and unboxing
    [Tip: check overflow/underflow C#]
    C# floating Point types
    UVa 103 Stacking Box(记忆化搜索)
    POJ 3321 apple tree(树形数组)
    UVa 116 Unidirectional TSP(简单旅行商DP)
    UVa 562 Dividing coins(简单DP)
    UVa 10003 Cutting Sticks(区间DP)
    UVa 348 Optimal Array Multiplication Sequence(链式DP/区间DP)
  • 原文地址:https://www.cnblogs.com/DoNetCShap/p/9954789.html
Copyright © 2011-2022 走看看