Date对象:操作日期时间
一.js使用3种方法创建Date对象
1.无参数创建
var objdate=new Date()
以当前的日期和时间创建Date对象(需要对当前的日期或者时间进行操作时可以使用这种方法创建)。
2.单参数创建,参数可以是一个表示日期时间的字符串或者一个以毫秒为单位的数值
var objdate=new Date(atrdate) var objdate=new Date(intval)
1)字符串的格式:moth dd,yyyy hh:mm:ss(如“1027,2013,13:00:00”表示2013年19月27日13点9分9秒)。
2)提供的参数为某一数字,则表示以距1970年1月1日00:00:00的间隔intval毫秒时间创建一个Date对象。
3.多参数创建
var objdate=new Date(yy,mm,dd,hh,mm,ss)
注意:这种方法创建Date对象时1到11分别表示1月大12月,如6表示5月。
二.Date 对象的get方法
1.getFullYear方法:返回Date对象中用于表示完整年份的数字
用于返回Date对象中所存储的年份的完整表示
objdate.getFullYear()
2.getYear方法:获取Date对象中的年份
以1900年为基准年,1900年以前,获取的年份为负,1900年及以后返回的为正。
objdate.getYear()
<script> var objdate1=new Date(); var objdate2=new Date(1995,10,36,12,23,02); var objdate3=new Date(1840,06,01); var objdate4=new Date(2008,12,08); document.write("年份:"+objdate1.getFullYear()+"<br>"); document.write("年份:"+objdate2.getFullYear()+"<br>"); document.write("年份:"+objdate2.getYear()+"<br>"); document.write("年份:"+objdate3.getYear()+"<br>"); document.write("年份:"+objdate4.getYear()); </script>
执行结果:从执行结果看到objdate4对象输出的年份和构造函数中设定的年份不同,这是因为12已经超出了月份的表示范围(0~11),此时系统会自动“进位”。
3.getMonth方法:返回Date对象中存储的月份
objdate.getMonth()
4.getDate方法:返回Date对象中所存储的某一月份中的日期
objdate.getDate()改方法返回一个1~31之间的整数,表示了某一月中的某一天。
<script> var objdate=new Date(2008,15,35); document.write("年份:"+objdate.getFullYear()+"<br>"); document.write("月份:"+(objdate.getMonth()+1)+"<br>"); document.write("日期:"+objdate.getDate()+"<br>"); </script>
执行结果:可以看出,月份和日期超出规定范围后,都可以进位。
5.getDay方法:返回Date对象中存储的日期所对应的周次
使用该方法可以得到Date对象中存储的日期所对应的周次,返回值为0~6之间的一个整数,分别与一周中的7天相对应。
objdate.getDay()
6.getHours方法:以24小时制返回Date对象中所存储的小时值
该方法返回一个0~23之间的整数,分别代表一天中的24小时,如果在创建Date对象时没有指定时间,返回值为0.
objdate.getHours()
7.getMinutes方法:返回Date对象中所存储的时间中的分钟值
该方法返回一个0~59之间的整数,如果在创建Date对象时没有指定时间,返回值为0.
objdate.getMinutes()
8.getSeconds方法:返回Date对象中所存储的时间中的钟值
该方法返回一个0~59之间的整数,如果在创建Date对象时没有指定时间,返回值为0.
objdate.getSeconds()
9.getTime方法:返回Date中存储的时间距1970年1月1日午夜的时间差
该方法以ms为单位返回Date对象中存储的时间距1970年1月1日00:00:00的时间间隔,如果该方法的返回值为负说明Date对象中存储的时间在1970年1月1日之前。
objdate.getTime()
10.getMilliseconds方法:返回Date对象中存储的时间中的毫秒数
该方法返回一个0~999之间的整数,如果在创建Date对象时没有指定时间,返回值为0.
objdate.getMilliseconds()
11.getUTC方法:返回UTC日期或时间
UTC(全球标准时间)是指世界标准设定的时间,有时也成为格林威治时间或GMT.在中国大陆采用的是北京时间,小时值一般比UTC提前8个小时。
objdate.getUTC()
getUTC方法及作用说明
方法 | 说明 |
getUTCFullYear | 获取UTC年份 |
getUTCMonth | 获取UTC月份,返回值介于0到11之间 |
getUTCDate | 获取UTC日期,返回值介于1到31之间 |
getUTCDay | 获取UTC星期,返回值介于0到6之间 |
getUTCHours | 获取UTC小时值,返回值介于0到23之间 |
getUTCMinutes | 获取UTC分钟数,返回值介于0到59之间 |
getUTCSeconds | 获取UTC秒钟数,返回值介于0到59之间 |
getUTCMilliseconds | 获取UTC毫秒数,返回值介于0到999之间 |
三.Date对象的set方
set方法表
方法 | 调用 | 说明 | |
1 | setFullYear | objdate.setFulYear(year[,month,date]) | 设置Date对象中的年分值 |
2 | setYear | objdate.setYear(year) | 设置Date对象中的年份(不被推荐使用,一般建议使用setFullYear) |
3 | setMonth | objdate.setMonth(month) | 设置Date对象中的月份值 |
4 | setDate | objdate.setDate(date) | 设置Date对象中的日期指 |
5 | setHours | objdate.setHours(hours[,minute[,second[,millisecond]]]) | 设置Date对象中的小时值 |
6 | setMinutes | objdate.setMinutes(minute[,second[,millisecond]]) | 设置Date对象中的分钟数 |
7 | setSeconds | objdate.setSeconds(second[,millisecond]) | 设置Date对象中的秒钟值 |
8 | setUTC | objdate.setUTC() | 以格林威治日期或时间对Date对象进行设置 |
setUTC方法说明
方法 | 说明 |
setUTCYear | 设置指定的UTC年份 |
setUTCMonth | 设置UTC月份,指定参数在0~11之间整数 |
setUTCDate | 设置UTC日期,指定参数介于1~31之间整数 |
setUTCDay | 设置UTC星期值,指定参数在0~6之间整数 |
setUTCHours | 设置24小时制的UTC小时,指定参数介于0~23之间整数 |
setUTCMinutes | 设置UTC分钟值,指定参数在0~59之间的整数 |
setUTCSeconds | 设置UTC秒钟值,指定参数在0~59之间的整数 |
setUTCMilliseconds | 设置UTC毫秒值,指定参数在0~999之间的整数 |
四.Date对象的其他用法
1.getTimezoneOffset方法:返回当地时间与UTC时间的差值
该方法以分钟为单位返回当地时间与UTC之间的差值,如果当地时间落后于UTC时间,返回值为正;如果当地时间超前UTC时间(比如中国普遍采用的北京时间),返回值为负。
objdate.getTimezoneOffset()
下面有个小例子
<script type="text/javascript"> var objdate=new Date(); var objdate1=new Date(2013,10,28,18,39,48); //输出两个Date的时间差 writeTimeoffset(objdate.getTimezoneOffset()); document.write("<br>"); writeTimeoffset(objdate1.getTimezoneOffset()); //自定义函数,输出当地时间与UTC时间的关系 function writeTimeoffset(offset) { var position; //将时间分解为小时,分钟的格式 var hour=Math.abs(parseInt(offset/60)); var minute=Math.abs(offset%60); if(offset>0) { position="落后"; } else { position="超前"; } //输出时间差 document.write("当地时间"+position+"UTC时间"+hour+"小时"+minute+"分钟"); }
执行结果为
2.将Date对象中存储的内容输出方法
方法 | 调用 | 说明 | |
1 | toDateString | objdate.toDateString() | 将Date对象中的日期转换为字符串形式 |
2 | toUTCString | objdate.toUTCString() | 返回一个以UTC时间表示的时间字符串 |
3 | toGMTString | objdate.toGMTString() | 返回一个以GMT惯例表示的日期字符串(不建议使用) |
4 | toLocalString | objdate.toLocaelString() | 将Date对象中的时间转化为时间字符串 |
5 | toLocalDateString | objdate.toLocaleDateString() | 返回Date对象中的日期字符串 |
6 | toTimeString | objdate.toTimeString() | 以字符串的格式返回Date对象中的时间 |
7 | toLocalTimeString | objdate.toLocaleTimeString() | 将Date对象中的时间转化为时间字符串 |
8 | toString | objdate.toString.() | 将Date对象中的日期时间信息转化为字符串信息 |
ps:toString方法是JavaScript对象的内置方法,每个JavaScript对象都具有给方法。
下面给出一个实利来比较上表中个方法的不同
<script type="text/javaScript"> var obj=new Date(); document.write("<table name='tab' border=1 cellspacing=0>"); document.write("<tr>"+"<td>"+"toDateString方法"+"</td>"+"<td>"+obj.toDateString()+"</td>"+"</tr>"); document.write("<tr>"+"<td>"+"toUTCString方法"+"</td>"+"<td>"+obj.toUTCString()+"</td>"+"</tr>"); document.write("<tr>"+"<td>"+"toGMTString方法"+"</td>"+"<td>"+obj.toGMTString()+"</td>"+"</tr>"); document.write("<tr>"+"<td>"+"toLocaleString方法"+"</td>"+"<td>"+obj.toLocaleString()+"</td>"+"</tr>"); document.write("<tr>"+"<td>"+"toLocaleDateString方法"+"</td>"+"<td>"+obj.toLocaleDateString()+"</td>"+"</tr>"); document.write("<tr>"+"<td>"+"toTimeString方法"+"</td>"+"<td>"+obj.toTimeString()+"</td>"+"</tr>"); document.write("<tr>"+"<td>"+"toLocaleTimeString方法"+"</td>"+"<td>"+obj.toLocaleTimeString()+"</td>"+"</tr>"); document.write("<tr>"+"<td>"+"toString方法"+"</td>"+"<td>"+obj.toString()+"</td>"+"</tr>"); document.write("</table>"); </script>
执行结果:
五.Date对象的属性
1.prototype属性:将新定义的属性或方法添加到Date对象中
该属性是所有JavaScript对象所共有的属性,读各个对象来说其作用格式相同的:将新定义的属性或方法添加到某一对象中,然后,该对象的实例局可以调用该属性或方法。
调用方法:Date.prototype.methodName=functionName
其中methodName是新增方法的名称;functionName是要添加到对象中的函数名称。
2.constructor属性:指向创建当前对象的构造函数
所有具有prototype属性的对象都具有constructor属性,通过该属性可以得到指定对象的构造函数。
调用方法:objdate.constructor
实例:
<script type="text/javascript"> var objdate=new Date(2013,10,28); document.write("objdate的构造函数为:"+objdate.constructor); document.write("<br>"); if(objdate.constructor==Date){ document.write("objdate为Date对象实例"); } </script>
执行结果为:
幽默一下:
“阿小木,你女儿在跟你家的猫斗眼,都半个多小时了,待会出事了”
“啊,不得了,那可是个玩具猫啊。。。”
“切,你女儿还不也是个芭比娃娃吗、、、”
“呃,你神经病吧你!!”
“你才神经病呢,你神经病神经病......”
"你神经病,你神你神你神......"