美文网首页
js 判断时间几分钟前,几天前,时间戳转日期yyyy-mm-dd

js 判断时间几分钟前,几天前,时间戳转日期yyyy-mm-dd

作者: 醉笙情丶浮生梦 | 来源:发表于2019-02-21 16:30 被阅读0次
    // js 获取时间 获取的是本机的时间
    var now = new Date();
    var year = now.getFullYear();
    var month = now.getMonth();
    var day = now.getDate();
    var connect1 = "-";
    if (month >= 1 && month <= 9) {
      month = "0" + month;
    }
    if (day >= 0 && day <= 9) {
      day = "0" + day;
    }
    
    console.log(year, month, day);
    
    var currentdate = year + connect1 + month + connect1 + day;
    
    console.log(currentdate);
    
    
    function fun(time) {
    
      var now = new Date().getTime();
    
      // 下面两种转换格式都可以。
      // var tmpTime = Date.parse(new Date(time.replace(/-/gi,"/")));
      var tmpTime = Date.parse(time.replace(/-/gi, "/"));
      console.log(now, time, tmpTime);
    
      // 返回值
      var result;
      // 一分钟 1000 毫秒 乘以 60
      var minute = 1000 * 60;
      var hour = minute * 60;
      var day = hour * 24;
      var week = day * 7;
      var month = day * 30;
      var year = day * 365;
      // 现在时间 减去 传入时间 得到差距时间
      var diffValue = now - tmpTime;
      // 小于 0 直接返回
      if (diffValue < 0) {
        return;
      }
    
      console.log(diffValue);
    
      // 计算 差距时间除以 指定时间段的毫秒数 
      var yearC = diffValue / year;
      var monthC = diffValue / month;
      var weekC = diffValue / week;
      var dayC = diffValue / day;
      var hourC = diffValue / hour;
      var minC = diffValue / minute;
    
      // 可以用 if...else if...
      // if (yearC >= 1) {
      //   console.log("年前");
      // } else if (monthC >= 1) {
      //   result = "" + parseInt(monthC) + "月前";
      // } else if (weekC >= 1) {
      //   result = "" + parseInt(weekC) + "周前";
      // } else if (dayC >= 1) {
      //   console.log(result);
      //   result = "" + parseInt(dayC) + "天前";
      // } else if (hourC >= 1) {
      //   result = "" + parseInt(hourC) + "小时前";
      // } else if (minC >= 1) {
      //   result = "" + parseInt(minC) + "分钟前";
      // } else {
      //   result = "刚刚";
      // }
      
    
      // 也可以用 switch...case
      // 利用 布尔值 true 进入判断
      // 直接传数值进去做判断 结果不正确。
      switch (true) {
    
        case yearC >= 1:
          console.log("switch 年");
          // 如果大于一年就显示具体日期
          result = fmtDate(tmpTime);
          break;
        case monthC >= 1:
          console.log("switch 月");
          result = "" + parseInt(monthC) + "月前";
          break;
        case weekC >= 1:
          console.log("switch 周");
          result = "" + parseInt(weekC) + "周前";
          break;
        case dayC >= 1:
          console.log("switch 日");
          result = "" + parseInt(dayC) + "天前";
          break;
        case hourC >= 1:
          console.log("switch 天");
          result = "" + parseInt(hourC) + "小时前";
          break;
        default:
          console.log("其他");
    
      }
    
      return result;
    }
    
    // fun(currentdate);
    var param = '2018-02-19'
    var result = fun(param);
    console.log(result);
    
    
    // 转换 时间戳为 yyyy-mm-dd
    function fmtDate(obj) {
      var date = new Date(obj);
      console.log("格式化时间戳", date);
    
      var y = date.getFullYear();
      console.log("y", y, date.getFullYear());
    
      var m = "0" + (date.getMonth() + 1);
      console.log("m", m, date.getMonth());
    
      var d = "0" + date.getDate();
      console.log("d", d, date.getDate());
    
      // 参数二可以省略
      console.log(m.substring(1));
    
      // substring() 用于提取字符串中 介于 两个指定下标之间的字符。
      return y + "-" + m.substring(m.length - 2, m.length) + "-" +
    
        d.substring(d.length - 2, d.length);
    }
    
    
    // console.log(fmtDate(1545148800000));
    

    parseInt 解析字符串为整数。
    如果 string 以 1-9 数字开头,parseInt() 会解析成十进制整数。

    相关文章

      网友评论

          本文标题:js 判断时间几分钟前,几天前,时间戳转日期yyyy-mm-dd

          本文链接:https://www.haomeiwen.com/subject/tgqdyqtx.html