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

// 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)