zoukankan      html  css  js  c++  java
  • 年龄计算, 发布时间计算 等等 对时间戳的操作

    //时间戳转换时间
    function toDate(number){
      var n=number; //注释 10位的 需要 乘以 1000,如(number * 1000) 13位就不需要
      var date = new Date(n);
      var Y = date.getFullYear() + '/';
      var M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '/';var D = date.getDate()<10 ? '0'+date.getDate() : date.getDate();
      return (Y+M+D)

        //var h = date.getHours() + ':';
          //var m = date.getMinutes() + ':';
        //var s = date.getSeconds();
        //return Y+M+D+h+m+s;   时分秒 更具自己需求

    }

    //将日期格式转换成时间戳:
      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时间戳,就可传值给后台得到。


    =======================================================================
    年龄计算:
    假设出身年月 let old = '1993-10-10'
           let oldage =
    old.substr(0, 4); //截取字符串从第0位开始截取4位 1993
    获取当前时间戳:let new = Date.parse(new Date())
    用上面的函数toDate转化:
    时间戳转 日期: let newage = toDate(new) //2019
    let age = newage - oldage  // 26=
    =====================================================



    发布多久 的demo: 刚刚, 一小时前, 一个月前 等等

    function getDateDiff(dateTimeStamp) {
    var result;
    var minute = 1000 * 60;
    var hour = minute * 60;
    var day = hour * 24;
    var halfamonth = day * 15;
    var month = day * 30;
    var now = new Date();//有些特殊 不能使用 new Date()
    var diffValue = now - dateTimeStamp;
    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;
    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;
    };
    ---------------------

    // 截取 空格前内容
    function getCaption(obj) {
    let index = obj.indexOf(" ");
    obj = obj.substring(0, index)
    return obj;
    }
     
    注释  res.data.msg.gmtModified 后台给我的   '2019-10-10 10:10:00'
     
    截取之后    '2019-10-10'  

    案例:::::
    //计算发布时间 (刚刚 几小时前 等等)
    let time = getCaption('2019-09-09 00:00:00') //处理时间 不然 ios显示不了NaN (坑!!)     //'2019-09-09'
    let time_two = (new Date(time)).getTime(); //日期转化为时间戳   // 13位     1500213180111....
     
    然后调用函数:
    console.log(getDateDiff(time_two)) // 2周前



    效果图:

    谢谢!!!!
  • 相关阅读:
    Git常用命令
    C++ 四种强制类型转换
    Linux系统日志及日志分析
    C/C++中的getline函数总结:
    标准C++中的string类的用法总结
    C++中map的基本操作和使用;
    一个C++类的注释:
    C++ 中宏的使用 --来自:http://blog.csdn.net/hgl868/article/details/7058906
    c++ 的vector
    c++强制类型转换:dynamic_cast、const_cast 、static_cast、reinterpret_cast
  • 原文地址:https://www.cnblogs.com/520BigBear/p/10578320.html
Copyright © 2011-2022 走看看