JavaScript原生对象常用方法总结(推荐)(5)

此方法用于根据世界时返回距离1970-01-01的毫秒数,前3个参数是必须的,其余参数是可选的,
分别表示年、月、日、小时、分钟、秒、毫秒,
此方法返回的毫秒数可以传递给Date()构造函数,
           
Date对象的toString方法默认是转换成GMT格式,对于我们来说,不适用,我们往往希望显示为yyyy-MM-dd hh:mm:ss格式,
Date原生对象没有提供这个功能,只好自己扩展了,

Date.prototype.format = function(format){  var o = {  "M+" : this.getMonth()+1, //month 月  "d+" : this.getDate(), //day 日  "h+" : this.getHours(), //hour 时  "m+" : this.getMinutes(), //minute 分  "s+" : this.getSeconds(), //second 秒  "q+" : Math.floor((this.getMonth()+3)/3), //quarter季度  "S" : this.getMilliseconds() //millisecond毫秒  }  if(/(y+)/.test(format)) {  format = format.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));  }  for(var k in o) {  if(new RegExp("("+ k +")").test(format)) {  format = format.replace(RegExp.$1, RegExp.$1.length==1 ? o[k] : ("00"+ o[k]).substr((""+ o[k]).length));  }  }  return format;  } 

使用示例:

var date = new Date();  alert(date.format("yyyy-MM-dd hh:mm:ss")); 

js的原生Date类也没有提供add方法即在原日期基础先添加或减去指定天数,现扩展如下:

Date.prototype.dateAdd = function(interval,number)  {  var d = this;  var k={'y':'FullYear', 'q':'Month', 'm':'Month', 'w':'Date', 'd':'Date', 'h':'Hours', 'n':'Minutes', 's':'Seconds', 'ms':'MilliSeconds'};  var n={'q':3, 'w':7};  eval('d.set'+k[interval]+'(d.get'+k[interval]+'()+'+((n[interval]||1)*number)+')');  return d;  } 

interval参数:
y       年
q       季度
m       月
d       日
w       周
h       小时
n       分钟
s       秒
ms      毫秒
 
number参数:时间间隔,必须为数字,为正数表示获取指定间隔的未来的日期,为负数表示过去的日期
 
//用于计算两个日期之间的时间间隔,
//使用此方法还能比较两个日期的大小,如果返回值大于0,表示objDate2比较大,
//如果小于0,表示objDate2比较小

Date.prototype.dateDiff = function(interval,objDate2) { var d=this, i={}, t=d.getTime(), t2=objDate2.getTime(); i['y']=objDate2.getFullYear()-d.getFullYear(); i['q']=i['y']*4+Math.floor(objDate2.getMonth()/4)-Math.floor(d.getMonth()/4); i['m']=i['y']*12+objDate2.getMonth()-d.getMonth(); i['ms']=objDate2.getTime()-d.getTime(); i['w']=Math.floor((t2+345600000)/(604800000))-Math.floor((t+345600000)/(604800000)); i['d']=Math.floor(t2/86400000)-Math.floor(t/86400000); i['h']=Math.floor(t2/3600000)-Math.floor(t/3600000); i['n']=Math.floor(t2/60000)-Math.floor(t/60000); i['s']=Math.floor(t2/1000)-Math.floor(t/1000); return i[interval]; }

interval参数:参照上面dateAdd方法的interval参数说明,

objDate2:另一个日期对象
 
js中的Math类:

此类是静态类,不能通过构造函数创建实例的,所以提供的方法都是静态方法,直接通过类名调用

abs():获取数字的绝对值,如果提供的参数是字符串,则会首先尝试将其转换成数字,如果不能

转成数字,则直接返回NaN,如果能,则返回其绝对值。

ceil():对传入的参数进行向上取整计算,如果传入的不是数字,则会尝试将其进行数字转换,

不能转换则之间则直接返回NaN

floor():对传入参数进行向下取整计算,如果传入的不是数字,则会尝试将其进行数字转换,

不能转换则之间则直接返回NaN

max(x1,x2,x3.....xn):返回指定参数中的最大值,如果指定参数中有一个不能转换成数字,则直接

返回NaN,如果没有传入参数,则返回负无穷大

min(x1,x2,x3.....xn):返回指定参数中的最小值,如果指定参数中有一个不能转换成数字,则直接

返回NaN,如果没有传入参数,则返回正无穷大

pow(x,y):返回x 的 y 次幂,如果计算结果是负数,则返回NaN,如果由于计算结果太大,导致浮点溢出,

则返回正无穷大

random():返回0 ~ 1 之间的一个随机数。

round(x):与 x 最接近的整数。如果x是正数,那么0.5会转成1,如果是-0.5,那么会舍掉,

-0.50001才会转成-1

sqrt(x):返回一个数的平方根,如果 x 小于 0,则返回 NaN,

如果传入的不是数字,则会尝试将其进行数字转换,

不能转换则之间则直接返回NaN

js的RegExp正则对象:

创建正则对象两种方式:

1. /pattern/attributes

pattern是正则表达式部分,

attributes:可选参数,包含属性 "g"、"i" 和 "m"等取值

g:表示全局匹配(查找所有匹配而非在找到第一个匹配后停止)

i:表示忽略大小写

m:表示多行匹配

2,new RegExp(pattern,attributes),第二个参数可选

以上这篇JavaScript原生对象常用方法总结(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wzpfpx.html