文档章节

JS常用方法函数

第九1008
 第九1008
发布于 2017/05/06 20:28
字数 1018
阅读 4
收藏 0

//获得某月的最后一天
function getLastDay(year, month) { var new_year = year; //取当前的年份
var new_month = month++;//取下一个月的第一天,方便计算(最后一天不固定)
if (month > 12) { new_month -= 12; //月份减
new_year++; //年份增
} var d = new Date(new_year, new_month, 1); //取当年当月中的第一天
d.setDate(d.getDate() - 1); var month = d.getMonth() + 1; var day = d.getDate(); if (month < 10) { month = "0" + month; } if (day < 10) { day = "0" + day; } var val = d.getFullYear() + "-" + month + "-" + day; return val; }

//[公共]数组去除重复项 - 参数:数组 function uniqueArray(a) { temp = new Array(); for (var i = 0; i < a.length; i++) { if (!contains(temp, a[i])) { temp.length += 1; temp[temp.length - 1] = a[i]; } } return temp; }

///[公共]判断一个字符串是否包含另一个字符串 - 参数:字符串1, 字符串2; 返回值:字符串1包含字符串2, 返回true function contains(tempStr, str) { return tempStr.indexOf(str) >= 0; }

//[公共]日期类型加减天数 - 参数:日期, 需要加减的天数(days为负数时为减, 为正数时为加); 返回值:加减后的日期字符串值 function addDate(date, days) { var d = new Date(date); d.setDate(d.getDate() + days); var month = d.getMonth() + 1; var day = d.getDate(); if (month < 10) { month = "0" + month; } if (day < 10) { day = "0" + day; } var val = d.getFullYear() + "" + month + "" + day; return val; }

//[公共]获取当前日期(Date)/时间(Time) - 参数:日期类型('Date' = 不带时间, 'Time' = 带时间); 返回值:当前年月日或当前年月日时分秒 function getNowDate(dateType) { var mydate = new Date(); var str = "" + mydate.getFullYear() + "-"; str += (mydate.getMonth() + 1) + "-"; str += mydate.getDate() + ""; if (dateType == "Time")//时间 { str += " " + mydate.getHours() + ":" + mydate.getMinutes(); } return str; }

//[公共]日期类型比较 - 参数: 日期字符串1, 日期字符串2, 判断类型('大于等于'或"大于"); 返回值:日期字符串1大于或大于等于日期字符串2, 返回true function dateComparison1(date1, date2, type) { var isOK = false; var oDate1 = new Date(date1); var oDate2 = new Date(date2); if (type == "大于等于") { if (oDate1.getTime() >= oDate2.getTime()) { isOK = true; } else { isOK = false; } } else { if (oDate1.getTime() > oDate2.getTime()) { isOK = true; } else { isOK = false; } } return isOK; }

//[公共]日期类型比较 - 参数: 日期字符串1, 日期字符串2, 判断类型('小于等于'或"小于"); 返回值:日期字符串1小于或小于等于日期字符串2, 返回true function dateComparison2(date1, date2, type) { var isOK = false; var oDate1 = new Date(date1); var oDate2 = new Date(date2); if (type == "小于等于") { if (oDate1.getTime() <= oDate2.getTime()) { isOK = true; } else { isOK = false; } } else { if (oDate1.getTime() < oDate2.getTime()) { isOK = true; } else { isOK = false; } } return isOK; }

//加减乘除函数说明:javascript的加减乘除结果会有误差,在两个浮点数相除的时候会比较明显。这个函数返回较为精确的除法结果

//加法函数; 调用:accAdd(arg1,arg2); 返回值:arg1加上arg2的精确结果 function accAdd(arg1, arg2) { var r1, r2, m; try { r1 = arg1.toString().split(".")[1].length } catch (e) { r1 = 0 } try { r2 = arg2.toString().split(".")[1].length } catch (e) { r2 = 0 } m = Math.pow(10, Math.max(r1, r2)) return (arg1 * m + arg2 * m) / m }

//减法函数; 调用:accSub(arg1,arg2); 返回值:arg1减上arg2的精确结果
function accSub(arg1, arg2) { return accAdd(arg1, -arg2); }

//乘法函数; 调用:accMul(arg1,arg2); 返回值:arg1乘以arg2的精确结果 function accMul(arg1, arg2) { var m = 0, s1 = arg1.toString(), s2 = arg2.toString(); try { m += s1.split(".")[1].length } catch (e) { } try { m += s2.split(".")[1].length } catch (e) { } return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m) }

//除法函数; 调用:accDiv(arg1,arg2); 返回值:arg1除以arg2的精确结果 function accDiv(arg1, arg2) { var t1 = 0, t2 = 0, r1, r2; try { t1 = arg1.toString().split(".")[1].length } catch (e) { } try { t2 = arg2.toString().split(".")[1].length } catch (e) { } with (Math) { r1 = Number(arg1.toString().replace(".", "")) r2 = Number(arg2.toString().replace(".", "")) return (r1 / r2) * pow(10, t2 - t1); } }

//获取两点之间的角度 function GetAngle(pntFirst, pntNext) { var dRotateAngle = Math.atan2(Math.abs(pntFirst.X - pntNext.X), Math.abs(pntFirst.Y - pntNext.Y)); if (pntNext.X >= pntFirst.X) { if (pntNext.Y >= pntFirst.Y) { } else { dRotateAngle = Math.PI - dRotateAngle; } } else { if (pntNext.Y >= pntFirst.Y) { dRotateAngle = 2 * Math.PI - dRotateAngle; } else { dRotateAngle = Math.PI + dRotateAngle; } } dRotateAngle = dRotateAngle * 180 / Math.PI; return dRotateAngle; }

//经纬度转化 function latlonConvert(ne) {

var result = "";

var indexE = ne.indexOf("E");
var indexW = ne.indexOf("W");
var indexN = ne.indexOf("N");
var indexS = ne.indexOf("S");

var ew = ((indexE > indexW) ? "E" : "W");
var ns = ((indexN > indexS) ? "N" : "S");
try {
    var sewValue = "";
    var snsValue = "";
    if (ne.indexOf(ew) > ne.indexOf(ns)) {
        sewValue = ne.substring(ne.indexOf(ew) + 1);
        snsValue = ne.substring(ne.indexOf(ns) + 1, ne.indexOf(ew) - ne.indexOf(ns));
    }
    else {
        snsValue = ne.substring(ne.indexOf(ns) + 1);
        sewValue = ne.substring(ne.indexOf(ew) + 1, ne.indexOf(ns) - ne.indexOf(ew));
    }

    var ewValue = 0;
    var nsValue = 0;
    nsValue = parseFloat(snsValue.substring(0, 2)) + parseFloat("0." + snsValue.substring(2)) / 0.6;
    if (sewValue.length == 6 || sewValue.length == 7) {
        ewValue = parseFloat(sewValue.substring(0, 3)) + parseFloat("0." + sewValue.substring(3)) / 0.6;
    }
    else {
        ewValue = 0;
    }
    if (ew == "W") ewValue = -ewValue;
    if (ns == "S") nsValue = -nsValue;

    result = nsValue + "," + ewValue

}
catch (exx) {
    result = "";
}

return result;

}

© 著作权归作者所有

第九1008
粉丝 0
博文 12
码字总数 1784
作品 0
昌平
程序员
私信 提问
JavaScript的基本使用

一、JavaScript的简单介绍   JavaScript是一种属于网络的脚本语言(简称JS),已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaS...

码农47
2018/03/15
0
0
在网页中JS函数自动执行常用三种方法

在网页中JS函数自动执行常用三种方法   在HTML中的Head区域中,有如下函数: <SCRIPT LANGUAGE="JavaScript">   functionn MyAutoRun()   {    //以下是您的函数的代码,请自行修改...

柠檬酷
2015/07/24
11.9K
2
WKWebView与js交互之完美解决方案

 随着H5功能愈发的强大,没进行过混合开发的小伙们都不好意思说自己能够独立进行iOS的app开发,在iOS7操作系统下,常用的native,js交互框架有easy-js,WebViewJavascriptBridge,以及结合jav...

HeroHY
2017/05/15
34
0
Objective-C与JavaScript的交互

UIWebView是iOS最常用的SDK之一,它有一个stringByEvaluatingJavaScriptFromString方法可以将 javascript嵌入页面中,通过这个方法我们可以在iOS中与UIWebView中的网页元素交互。 UIWebView是...

长平狐
2013/03/19
114
0
细说JavaScript数据类型及转换

细说JavaScript数据类型及转换 JavaScript数据类型 1.Boolean(布尔) 布尔:(值类型)var b1=true;//布尔类型 2.Number(数字) 数值:(值类型)var n1=3.1415926;//数值类型 n1.toFixed...

开元中国2015
2015/07/13
99
1

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周四乱弹 —— 干啥啥不行,吃饭第一名。

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @巴拉迪维 : 李白到杜甫家吃饭。杜甫洗菜,发现只有青瓜和萝卜,心中愧疚。这时,他看见了邻居家的鸡,杜甫一时心酸,忍不住喃喃自语:我希望...

小小编辑
19分钟前
75
7
Java描述设计模式(08):桥接模式

本文源码:GitHub·点这里 || GitEE·点这里 一、桥接模式简介 1、基础描述 桥梁模式是对象的结构模式。又称为柄体(Handle and Body)模式或接口(Interface)模式。桥梁模式的用意是“将抽象化...

知了一笑
20分钟前
4
0
C++ 函数指针的用法

天王盖地虎626
34分钟前
1
0
白话比原链跨链技术

随着Bystack的主侧链架构的推出,主侧链之间的跨链问题也成为比原链团队的主要攻克工程难题,当前比原链已经推出了两种跨链的机制,各有不同的侧重点,可能因为本身的跨链技术比较晦涩,本篇...

比原链Bytom
42分钟前
2
0
PostgreSQL参数search_path影响及作用

search_path稍微熟悉PG就会用到,用法这里就不必讲,本篇主要讲它在程序里怎样处理。 1、GUC参数定义 这是个 config_string 参数 {{"search_path", PGC_USERSET, CLIENT_CONN_STATEMENT,...

有理想的猪
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部