此方法用于根据世界时返回距离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原生对象常用方法总结(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
您可能感兴趣的文章: