javascript时间日期函数
javascript提供了Date对象来进行时间和日期的计算。
Date对象有多种构造函数:
1、dateObj=new Date() //当前时间
2、dateObj=new Date(milliseconds) //距离起始时间1970年1月1日的毫秒数
3、dateObj=new Date(datestring) //字符串代表的日期与时间。比如"2012-12-21"、"Jannuary 1, 1998 20:13:15"
4、dateObj=new Date(year, month-1, day, hours, minutes, seconds, microseconds) //参数可以不写全,不写则默认为0。Js的月份数值,一月用0表示,所以此处减一再传入。如果输入值超出合理范围,函数会自动折算。
下面是Date对象的读取函数列表:
获取类函数:
getDate() 函数 -- 返回日值(1-31)
getDay()函数 -- 返回星期值(0-6)
getFullYear() 函数 -- 返回四位数年份值
getHours()函数 -- 返回小时值(0-23)
getMilliseconds() 函数 -- 返回时间date对象的当前毫秒值(0-999)
getMinutes() 函数 -- 返回分钟值(0-59)
getMonth() 函数 -- 返回月份值(0-11)
getSeconds() 函数 -- 返回秒值(0-59)
getTime() 函数 -- 返回1970年1月1日零点以来的毫秒数,即毫秒时间戳。是UTC数值。
getYear() 函数 -- 返回年份值(真实年份减去1900)
计算两个日期时间的差:
d1=new Date(y1,m1-1,d1);
d2=new Date(y2,m2-1,d2);
相差天数:(d2.getTime()-d1.getTime())/86400000;
设置类函数: 多个参数时可以不写全,不写默认为0。
setDate(thedate) 函数 -- 设置月份的日值(1~31)
setFullYear(year,month,thedate) 函数 -- 设置的年份、月份(0~11)和日值
setHours(hours,minutes,seconds,milliseconds) 函数 -- 设置小时,分钟,秒和毫秒
setMilliseconds() 函数 -- 设置毫秒数
setMinutes(minutes,seconds,milliseconds) 函数 -- 设置分钟,秒,毫秒
setMonth(month,thedate) 函数 -- 设置月份,天
setSeconds() 函数 -- 设置秒
setTime() 函数 -- 使用1970年以来的毫秒数设置date对象
setYear() 函数 -- 设置年份(真实年份减去1900)
另参见:js时区相关函数
时间日期加减某个数值
先用get函数获取分量,加上数值后,再调用相应的set函数即可。数值若超出范围,会自动调整。
转化类函数:
toLocaleString() 函数 -- 返回本地时间字符串表示
toLocaleDateString函数 -- 返回日期部分的本地时间字符串
toLocaleTimeString函数 -- 返回时间部分的本地时间字符串
示例:toLocaleTimeString("zh",{hour12: false}),显示12进制时间
以下几个函数返回utc时间:
toString()
toDateString()
toTimeString()
日期解析函数parse() 比如:
var ms=Date.parse("Jul 8, 2005")
解析一个日期的字符串,并返回该日期距1970年1月1日午夜以来的毫秒数
时区相关的部份请看javascript时区函数
计时
console.time和console.timeEnd
console.time和console.timeEnd是用来测试一段js代码执行时间的。比如:
console.time('tag');
//js代码
console.timeEnd('tag');
此二函数只能输出到控制台。
performance.now()
测试执行时间
t0 = performance.now();
//执行代码
console.log(performance.now()- t0);
此函数取时精度较高。但老的浏览器可能不支持。
Date.now
也可以使用Date.now()来计时,兼容性好一些,但测试在ie8上还是不行。如果使用new Date.getTime()则无兼容性问题。