环保常用方法


/*
 * 转换时间格式
 */
 function convertTimeFormat(time) 
 {
   if (time != null) 
   {
    time = time.replace("-", "/");
    time = time.replace("-", "/");
    return new Date(time);
   }
   return null;
}

/**
 * 替换字符串
 * @param {Object} str  字符串
 * @param {Object} parms1 需要替换的字符串
 * @param {Object} parms2 替换后的字符串
 */
function replace(str,parms1,parms2){
    return str.replace(eval("/"+parms1+"/g"),parms2);
}
/*
* 格式化无效字符
*/
function formatStr(str) 
{
    if (str == null) 
    {
        return '无';
    } 
    else 
    {
        return str;
    }
}
/**
 * 获取风向
 */
function getWindDirectionStr(wd)
{
    var wdstr = '';
    if(wd==null)
    {
        wdstr = '-';
    }
    else if(wd<=22.5 || wd>=337.5)
    {
        wdstr = '北风';
    }
    else if(wd>22.5 && wd<=67.5)
    {
        wdstr = '东北风';
    }
    else if(wd>67.5 && wd<=112.5)
    {
        wdstr = '东风';
    }
    else if(wd>112.5 && wd<=157.5)
    {
        wdstr = '东南风';
    }
    else if(wd>157.5 && wd<=202.5)
    {
        wdstr = '南风';
    }
    else if(wd>202.5 && wd<=247.5)
    {
        wdstr = '西南风';
    }
    else if(wd>247.5 && wd<=292.5)
    {
        wdstr = '西风';
    }
    else if(wd>292.5 && wd<=337.5)
    {
        wdstr = '西北风';
    }
    return wdstr;
  }
/*

*/
function getWindLevelByStr(wd)
{
    var wid = 0;
    switch(wd)
    {
        case '北风':wid = 0;break;
        case '东北风':wid = 1;break;
        case '东风':wid = 2;break;
        case '东南风':wid = 3;break;
        case '南风':wid = 4;break;
        case '西南风':wid = 5;break;
        case '西风':wid = 6;break;
        case '西北风':wid = 7;break;
    }
    return wid;
}

function toRad(d) 
{  
    return d * Math.PI / 180; 
}

/**
* 计算距离
* lat为纬度, lng为经度
*/
function getDisance(lat1, lng1, lat2, lng2) { 
    var dis = 0;
    var radLat1 = toRad(lat1);
    var radLat2 = toRad(lat2);
    var deltaLat = radLat1 - radLat2;
    var deltaLng = toRad(lng1) - toRad(lng2);
    var dis = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(deltaLat / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(deltaLng / 2), 2)));
    return dis * 6378137;
}

/*
* 根据风速得到风力等级
*/
function getWindLevel(speed) {
    if (speed < 1) {
        return 0;
    } else if (speed >= 1 && speed <= 5) {
        return 1;
    } else if (speed >= 6 && speed <= 11) {
        return 2;
    } else if (speed >= 12 && speed <= 19) {
        return 3;
    } else if (speed >= 20 && speed <= 28) {
        return 4;
    } else if (speed >= 29 && speed <= 38) {
        return 5;
    } else if (speed >= 39 && speed <= 49) {
        return 6;
    } else if (speed >= 50 && speed <= 61) {
        return 7;
    } else if (speed >= 62 && speed <= 74) {
        return 8;
    } else if (speed >= 75 && speed <= 88) {
        return 9;
    } else if (speed >= 89 && speed <= 102) {
        return 10;
    } else if (speed >= 103 && speed <= 117) {
        return 11;
    } else if (speed > 117) {
        return 12;
    }
}

/*
* 根据aqi得到对应颜色
*/
function getAQIColor(aqi) {
    if (aqi <= 0) {
        color = "#f0f0f0";
    } else if (aqi <= 50) {
        color = "#43ce17";
    } else if (aqi <= 100) {
        color = "#efdc31";
    } else if (aqi <= 150) {
        color = "#fa0";
    } else if (aqi <= 200) {
        color = "#ff401a";
    } else if (aqi <= 300) {
        color = "#d20040";
    } else {
        color = "#9c0a4e";
    }
    return color;
}

/*
* 根据aqi得到污染等级
*/
function getAQIlevel(aqi) {
    if (aqi <= 0) {
        color = "无";
    } else if (aqi <= 50) {
        color = "优";
    } else if (aqi <= 100) {
        color = "良";
    } else if (aqi <= 150) {
        color = "轻度";
    } else if (aqi <= 200) {
        color = "中度";
    } else if (aqi <= 300) {
        color = "重度";
    } else {
        color = "严重";
    }
    return color;
}
function getPM25Level(pm2_5) {
  if(pm2_5==0){
    color = "无";
  }else if (pm2_5 <= 35) {
    color = "优";
  } else if (pm2_5 <= 75) {
    color = "良";
  } else if (pm2_5 <= 115) {
    color = "轻度";
  } else if (pm2_5 <= 150) {
    color = "中度";
  } else if (pm2_5 <= 250) {
    color = "重度";
  } else {
    color = "严重";
  }
  return color;
}
function getPM10Level(pm10) {
    if(pm10==0){
        color = "无";
    }else if (pm10 <= 50) {
        color = "优";
    } else if (pm10 <= 150) {
         color = "良";
    } else if (pm10 <= 250) {
        color = "轻度";
    } else if (pm10 <= 350) {
        color = "中度";
    } else if (pm10 <= 420) {
        color = "重度";
    } else {
        color = "严重";
    }
    return color;
}
function getSO2Level(so2) {
  if (so2 === 0) {
    color = "无";
  } else if (so2 <= 50) {
   color = "优";
  } else if (so2 <= 150) {
    color = "良";
  } else if (so2 <= 475) {
    color = "轻度";
  } else if (so2 <= 800) {
    color = "中度";
  } else {
    color = "重度";
  }
  return color;
}
function getNO2Level(no2) {
  if (no2 === 0) {
     color = "无";
  } else if (no2 <= 40) {
    color = "优";
  } else if (no2 <= 80) {
    color = "良";
  } else if (no2 <= 180) {
    color = "轻度";
  } else if (no2 <= 280) {
    color = "中度";
  } else if (no2 <= 565) {
    color = "重度";
  } else {
    color = "严重";
  }
  return color;
}
function getO3Level(o3) {
  if (o3 === 0) {
    color = "无";
  } else if (o3 <= 100) {
    color = "优";
  } else if (o3 <= 160) {
    color = "良";
  } else if (o3 <= 215) {
    color = "轻度";
  } else if (o3 <= 265) {
    color = "中度";
  } else if (o3 <= 800) {
    color = "重度";
  } else {
    color = "严重";
  }
  return color;
}
function getCOLevel(co) {
  if (co === 0) {
    color = "无";
  } else if (co <= 5) {
    color = "优";
  } else if (co <= 10) {
    color = "良";
  } else if (co <= 35) {
    color = "轻度";
  } else if (co <= 60) {
    color = "中度";
  } else if (co <= 90) {
    color = "重度";
  } else {
    color = "严重";
  }
  return color;
}


/*
*根据aqi得到按钮样式
*/
function getAQIStyle(aqi) {
    if (aqi <= 0 || aqi == null || aqi == '') {
        styles = 'background-color:#6E6E6E;color:white;';
    } else if (aqi <= 50) {
        styles = 'background-color:#43ce17;color:white;';
    } else if (aqi <= 100) {
        styles = 'background-color:#efdc31;color:white;';
    } else if (aqi <= 150) {
        styles = 'background-color:#fa0;color:white;';
    } else if (aqi <= 200) {
        styles = 'background-color:#ff401a;color:white;';
    } else if (aqi <= 300) {
        styles = 'background-color:#d20040;color:white;';
    } else {
        styles = 'background-color:#9c0a4e;color:white;';
    }
    return styles;
}

/*
* 根据AQI获取污染等级
*/
function getAQILevelIndex(aqi) {
    var level = 0;
    if (aqi <= 0 || aqi == null || typeof aqi == 'undefined') {
        level = 0;
    } else if (aqi <= 50) {
        level = 1;
    } else if (aqi <= 100) {
        level = 2;
    } else if (aqi <= 150) {
        level = 3;
    } else if (aqi <= 200) {
        level = 4;
    } else if (aqi <= 300) {
        level = 5;
    } else {
        level = 6;
    }
    return level;
}

/*
* 根据等级获取颜色
*/
function getColorByIndex(level) {
    var color = '#6E6E6E';
    if (level == 0) {
        color = "#6E6E6E";
    } else if (level == 1) {
        color = "#43ce17";
    } else if (level == 2) {
        color = "#efdc31";
    } else if (level == 3) {
        color = "#fa0";
    } else if (level == 4) {
        color = "#ff401a";
    } else if (level == 5) {
        color = "#d20040";
    } else {
        color = "#9c0a4e";
    }
    return color;
}

/*根据浓度获取颜色*/
function returnColorByPollName(val, type) {
  var level = getIndexByPollName(val, type);
  return getColorByIndex(level);
}

/* 
 * 根据综合指数得到对应污染等级
*/
function getComplexIndexLevelIndex(complexindex) {
    if (complexindex <= 5) {
        level = 1;
    } else if (complexindex <= 6) {
        level = 2;
    } else if (complexindex <= 8) {
        level = 3;
    } else if (complexindex <= 9) {
        level = 4;
    } else if (complexindex <= 10) {
        level = 5;
    } else {
        level = 6;
    }
    return level;
}

/*
* 根据pm2.5得到对应污染等级
*/
function getPM25LevelIndex(pm2_5) {
    var level;
    if(pm2_5==0){
        level = 0;
    }else if (pm2_5 <= 35) {
        level = 1;
    } else if (pm2_5 <= 75) {
        level = 2;
    } else if (pm2_5 <= 115) {
        level = 3;
    } else if (pm2_5 <= 150) {
        level = 4;
    } else if (pm2_5 <= 250) {
        level = 5;
    } else {
        level = 6;
    }
    return level;
}

/*
*根据pm10得到对应污染等级
*/
function getPM10LevelIndex(pm10) {
    var level;
    if(pm10==0){
        level = 0;
    }else if (pm10 <= 50) {
        level = 1;
    } else if (pm10 <= 150) {
        level = 2;
    } else if (pm10 <= 250) {
        level = 3;
    } else if (pm10 <= 350) {
        level = 4;
    } else if (pm10 <= 420) {
        level = 5;
    } else {
        level = 6;
    }
    return level;
}

/**
 *根据so2得到对应污染等级
 */
 function getSO2LevelIndex(so2, type) {
   var level;
   if (type == 'day') {
       if(so2==0 || so2 == null || typeof so2 == 'undefined'){
            level = 0;
        }else if (so2 <= 50) {
        level = 1;
        } else if (so2 <= 150) {
        level = 2;
        } else if (so2 <= 475) {
        level = 3;
        } else if (so2 <= 800) {
        level = 4;
        } else {
        level = 5;
        }       
   } else {
       if(so2==0 || so2 == null || typeof so2 == 'undefined'){
            level = 0;
        }else if (so2 <= 150) {
        level = 1;
        } else if (so2 <= 500) {
        level = 2;
        } else if (so2 <= 650) {
        level = 3;
        } else if (so2 <= 800) {
        level = 4;
        } else {
        level = 5;
        }       
   }

    return level;
}

/**
*根据no2得到对应污染等级
*/
function getNO2LevelIndex(no2, type) {
    var level;
    if (type == 'day') {
        if(no2==0 || no2 == null || typeof no2 == 'undefined'){
            level = 0;
        }else if (no2 <= 40) {
            level = 1;
        } else if (no2 <= 80) {
            level = 2;
        } else if (no2 <= 180) {
            level = 3;
        } else if (no2 <= 280) {
            level = 4;
        } else if (no2 <= 565) {
            level = 5;
        } else {
            level = 6;
        }
    } else {
        if(no2==0 || no2 == null || typeof no2 == 'undefined'){
            level = 0;
        }else if (no2 <= 100) {
            level = 1;
        } else if (no2 <= 200) {
            level = 2;
        } else if (no2 <= 700) {
            level = 3;
        } else if (no2 <= 1200) {
            level = 4;
        } else if (no2 <= 2340) {
            level = 5;
        } else {
            level = 6;
        }        
    }

    return level;
}

/**
* 根据o3得到对应污染等级
*/
function getO3LevelIndex(o3, type) {
    var level;
    if (type == 'day') {
        if(o3==0 || o3 == null || typeof o3 == 'undefined'){
            level = 0;
        }else if (o3 <= 100) {
            level = 1;
        } else if (o3 <= 160) {
            level = 2;
        } else if (o3 <= 215) {
            level = 3;
        } else if (o3 <= 265) {
            level = 4;
        } else if (o3 <= 800) {
            level = 5;
        } else {
            level = 6;
        }
    } else {
        if(o3==0 || o3 == null || typeof o3 == 'undefined'){
            level = 0;
        }else if (o3 <= 160) {
            level = 1;
        } else if (o3 <= 200) {
            level = 2;
        } else if (o3 <= 300) {
            level = 3;
        } else if (o3 <= 400) {
            level = 4;
        } else if (o3 <= 800) {
            level = 5;
        } else {
            level = 6;
        }        
    }
    return level;
}

/**
* 根据co得到对应污染等级
*/
function getCOLevelIndex(co, type) {
    var level;
    if (type == 'day') {
        if(co==0 || co == null || typeof co == 'undefined'){
            level = 0;
        }else if (co <= 2) {
            level = 1;
        } else if (co <= 4) {
            level = 2;
        } else if (co <= 14) {
            level = 3;
        } else if (co <= 24) {
            level = 4;
        } else if (co <= 36) {
            level = 5;
        } else {
            level = 6;
        }
    } else {
        if(co==0 || co == null || typeof co == 'undefined'){
            level = 0;
        }else if (co <= 5) {
            level = 1;
        } else if (co <= 10) {
            level = 2;
        } else if (co <= 35) {
            level = 3;
        } else if (co <= 60) {
            level = 4;
        } else if (co <= 90) {
            level = 5;
        } else {
            level = 6;
        }
    }

    return level;
}

function getIndexByPollName(val, type) {
  var level = 0;
  switch (type) {
    case 'so2':
      level = getSO2LevelIndex(val);
      break;
    case 'no2':
      level = getNO2LevelIndex(val);
      break;
    case 'co':
      level = getCOLevelIndex(val);
      break;
    case 'o3':
      level = getO3LevelIndex(val);
      break;
    case 'o3_8h':
      level = getO3LevelIndex(val);
      break;
    case 'pm2_5':
      level = getPM25LevelIndex(val);
      break;
    case 'pm10':
      level = getPM10LevelIndex(val);
      break;
    case 'aqi':
      level = getAQILevelIndex(val);
      break;
    case 'complexindex':
      level = getComplexIndexLevelIndex(val);
      break;
    default:
      level = 7;
  }
  return level;
}


/**
 * 计算综合指数
 * @param so2
 * @param no2
 * @param co
 * @param o3
 * @param pm10
 * @param pm2_5
 * @returns {number}
 */
function getIndex(so2,no2,co,o3,pm10,pm2_5){
    return so2/60 + no2/40 + co/4 + o3/160 + pm10/70 + pm2_5/35;
}
//解决排名bug
function fixSortBugFun(data,id)
             {
                 $.each(data,function(index,obj){
                     if(obj.rankIndexForSort<0)
                     {
                         var rankIndexForSort=$("#"+id+" tbody tr:eq("+(index-1)+") td:eq(0)").text();
                         $("#"+id+" tbody tr:eq("+index+") td:eq(0)").text(rankIndexForSort);
                         obj.rankIndexForSort=0;
                     }
                 });
             } 


/**
 * @author Zhang Chaoshuai
 * 四舍六入
 * @returns number
 */
function roundFourInSix(num,precision=0){
        var numstr=num+"";
        var point=numstr.indexOf(".");//小数点出现的位置

        if(point==-1){//如果没有小数点,直接返回
            return num;
        }
        
        if(numstr.substr(numstr.indexOf(".")+1).length<=precision){
            return num;
        }
        var front=numstr.substr(0,point+precision);//前半部分
        
        var frontnum=(precision==0)?numstr.substr(point+precision-1,1):numstr.substr(point+precision,1);//前一个数字

        var keynum=numstr.substr(point+precision+1,1);//关键位数字

        var lastnum=numstr.substr(point+precision+2);//关键位数字

        var b=parseFloat(frontnum);

        if(precision==0){
            var a=parseFloat(front);
            if(parseInt(keynum)<=4){//舍去
            }else if(parseInt(keynum)>=6){//进位
                a++;
            }else{
                if(lastnum!=""&&parseInt(lastnum)!=0){
                    a++;
                }else{
                    if(b%2!=0){//偶数
                        a++;
                    }
                }
            }
            return a;
        }else{
            if(parseInt(keynum)<=4){//舍去
            }else if(parseInt(keynum)>=6){//进位
                b++;
            }else{
                if(lastnum!=""&&parseInt(lastnum)!=0){    
                    b++;
                }else{
                    if(b%2!=0){//偶数
                        b++;
                    }
                }
            }
            return  parseFloat((parseFloat(front)+parseFloat(b)/Math.pow(10,precision)).toFixed(precision));
        }
};                                                                                                


    // 扩展Date的format方法
function timeformat(date, format) {
  var o = {
    'M+': date.getMonth() + 1,
    'd+': date.getDate(),
    'h+': date.getHours(),
    'm+': date.getMinutes(),
    's+': date.getSeconds(),
    'q+': Math.floor((date.getMonth() + 3) / 3),
    'S': date.getMilliseconds()
  };
  var result = format;
  if (/(y+)/.test(result)) {
    result = result.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
  }
  Object.keys(o).forEach(k => {
    if (new RegExp('(' + k + ')').test(result)) {
      result = result.replace(RegExp.$1, RegExp.$1.length === 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length));
    }
  });
  return result;
};

/**
* 转换日期字符串为long值
* @param datestr 日期字符串
* @param pattern 格式字符串,例如:yyyy-MM-dd hh:mm:ss
* @return 日期整形
*/
function getLongByDate(datestr) {
  if (!datestr) {
    return (new Date()).getTime();
  }
  datestr = datestr.replace(/-/g, '/');
  return (new Date(datestr)).getTime();
};

/**
* 转换日期对象为日期字符串
* @param date 日期
* @param pattern 格式字符串,例如:yyyy-MM-dd hh:mm:ss
* @return 符合要求的日期字符串
*/
function getFormatDate(date, pattern) {
  if (!date) {
    date = new Date();
  } else if (typeof date === 'string' && date.constructor === String) {
    date = date.replace(/-/g, '/');
    date = new Date(date);
  }
  if (!pattern) {
    pattern = 'yyyy-MM-dd hh:mm:ss';
  }
  return timeformat(date, pattern);
};

// *
// * 转换日期对象为日期字符串
// * @param date 日期对象
// * @param isFull 是否为完整的日期数据,
// *               为true时, 格式如"2000-03-05 01:05:04"
// *               为false时, 格式如 "2000-03-05"
// * @return 符合要求的日期字符串

function getSmpFormatDate(date, isFull) {
  var pattern = '';
  if (isFull === true || isFull === undefined) {
    pattern = 'yyyy-MM-dd hh:mm:ss';
  } else {
    pattern = 'yyyy-MM-dd';
  }
  return getFormatDate(date, pattern);
};

/**
* 转换当前日期对象为日期字符串
* @param date 日期对象
* @param isFull 是否为完整的日期数据,
*               为true时, 格式如"2000-03-05 01:05:04"
*               为false时, 格式如 "2000-03-05"
* @return 符合要求的日期字符串
*/
function getSmpFormatNowDate (isFull) {
  return getSmpFormatDate(new Date(), isFull);
};

/**
* 转换当前日期对象为当前小时日期字符串
* @param date 日期对象
* @param isFull 是否为完整的日期数据,
*               为true时, 格式如"2000-03-05 01:05:04"
*               为false时, 格式如 "2000-03-05"
* @return 符合要求的日期字符串
*/
function getSmpFormatNowHour() {
  return getSmpFormatDate(new Date(), true).substr(0, 13) + ':00:00';
};

/**
* 日期加减
*/
function getFormatDateAdd(date, num, pattern = 'yyyy-MM-dd hh:mm:ss') {
  var newdate = date.replace(/-/g, '/');
  newdate = new Date(newdate);
  newdate.setDate(newdate.getDate() + num);
  return timeformat(newdate, pattern);
};

/**
* 小时加减
*/
 function getFormatDateHourAdd(date, num, pattern = 'yyyy-MM-dd hh:mm:ss') {
  let newdate = date.replace(/-/g, '/');
  newdate = new Date(newdate);
  newdate.setHours(newdate.getHours() + num);
  return timeformat(newdate, pattern);
};

function getWeekByDate(datestr){
  var weeks = [7, 1, 2, 3, 4, 5, 6];
  var date;
  if (!datestr) {
    date = new Date();
  }
  datestr = datestr.replace(/-/g, '/');
  date = new Date(datestr);
  return weeks[date.getDay()];
};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值