JavaScript对象-Date对象

Date对象是JasvaScript语言的核心对象之一,该对象主要处理与日期和时间有关的数据信息。
我们将用一个例子一步步的学习和研究Date对象。该例子是在浏览器中显示一个数字时钟,包括年月日及星期。
效果:2008年1月3日 11:07:41 星期四


  在使用Date对象之前必须先创建该对象。在JavaScript中有3种方法创建Date对象。
我们先看第一种无参数创建,如果需要对当前的日期或时间进行操作,可以使用这种方法来创建Date对象。
objdate=new Date()
具体用法在介绍完几个基本的Date方法(方法我认为可以简单理解为,这个对象的本领,就象我们一个人都能做什么一样)后见示例。

一、getYear方法和getFullYear方法——获取Date对象中的年份

基本语法:objdate.getYear()     objdate.getFullYear()
功能说明:返 回Date对象中所存储的年份。前者和后者的区别是后者可避免千年问题。对于1900以前及2000年以后的年份,两种方法作用相同。但对于1900至 1999年之间的年份,前者返回的年份是后两位数。以上针对IE浏览器,而对FF浏览器,则不是这样,具体区别请看下例。
实例演示:

<html>
<head>
<title>JavaScript对象——Date对象</title>
<script language="javaScript">
function display(){
var date1995=new Date(1995,11,12); //定义年份为1995年,月份为12月,日期为12日的date对象
var dateToday=new Date(); //定义当前日期和时间的date对象
var fullYear1995=date1995.getFullYear();//以getFullYear方法获取1995年年份
var year1995=date1995.getYear();//以getYear方法获取1995年年份
var fullYearToday=dateToday.getFullYear();
var yearToday=dateToday.getYear();
document.getElementById("clock1").innerHTML="1995年的getFullYear()返回值为:"+fullYear1995;//向ID号为CLOCK1的层中写入信息
document.getElementById("clock2").innerHTML="1995年的getYear()返回值为:"+year1995;
document.getElementById("clock3").innerHTML="今年的getFullYear()返回值为:"+fullYearToday;
document.getElementById("clock4").innerHTML="今年的getYear()返回值为:"+yearToday;
}
</script>
</head>
<body onload="display()">
<div id="clock1"></div>
<div id="clock2"></div>
<div id="clock3"></div>
<div id="clock4"></div>
</body>
</html>

在IE中显示效果:

1995年的getFullYear()返回值为:1995
1995年的getYear()返回值为:95
今年的getFullYear()返回值为:2008
今年的getYear()返回值为:2008

在FF中显示的效果: 

1995年的getFullYear()返回值为:1995
1995年的getYear()返回值为:95
今年的getFullYear()返回值为:2008
今年的getYear()返回值为:108

心得体会:

为了解决两个浏览器的兼容问题及避免千年问题,建议使用getFullYear方法。


二、getMonth方法——获得Date对象中的月份

基本语法:objdate.getMonth()
功能说明:返回值为0-11之间的某一整数,分别代表1月-12月

三、getDate方法——获得Date对象中的日期

基本语法:objdate.getDate()
功能说明:返回一个1-31之间的整数,对应某一月中的某一天

四、getDay方法——获得Date对象中的日期对应的星期数

基本语法:objdate.getDay()
功能说明:返回值为0-6之间的某一整数,分别和一周中的7天对应,0表示星期天,6表示星期六。


五、getHours方法、getMinutes方法、getSeconds方法、getMilliseconds方法——获得Date对象中的小时(24小时制)、分钟、秒、毫秒数

下面我们用上面的方法来编制一个数字时钟:

<html>
<head>
<title>数字时钟</title>
<script language="javaScript">
function display(){
var today=new Date();//以当前时间和日期来创建DATE对象
var year=today.getFullYear();//获取当前年份
var month=today.getMonth();//获取当前月份
var day=today.getDate();//获取当前日期
var week=today.getDay();//获取当前日期对应的星期
var hours=today.getHours();//获取当前小时
var minutes=today.getMinutes();//获取当前分钟
var seconds=today.getSeconds();//获取当前秒钟
month+=month+1;//由于getMonth返回值0-11对应的1-12月,所以最终结果结果要加1
switch(week)//由于getDay返回值0-6对应的是星期日到星期六,返回值为整数,要转化成中文形式
{
case 0:week="日";break;
case 1:week="一";break;
case 2:week="二";break;
case 3:week="三";break;
case 4:week="四";break;
case 5:week="五";break;
case 6:week="六";break;
}
if(minutes<=9)//当分钟数为个位时,让显示成0×形式,如为8,则显示为08,下面的秒、小时同。
{
minutes="0"+minutes
}
if(seconds<=9){
seconds="0"+seconds
}
if(hours<=9){
hours= "0"+hours
}
var listdate= "当前时间:"+year+"年"+month+"月"+day+"日 "+hours+":"+minutes+":"+seconds+" 星期"+week;//定义显示方式
document.getElementById( "clock").innerHTML=listdate;
setTimeout( "display()",1000);//每一秒重新运行一下DISPLAY()
}
</script>

</head>
<body onload="display()">
<div id="clock"></div>
</body>
</html>

  上面的例子全面运用了前面列出的DATE对象的方法,希望通过此例,大家能对DATE中的方法有个全面认识。接下来继续学习DATE的其它方法,然后我们继续修改上面的程序,让其简单化。

六、toDateString方法和toLocaleDateString方法--将Date对象中的日期转换成字符串格式

  toDateString方法能将Date对象中存储的时间转化为日期字符串输出,该字符串的一般格式为“周次 月份 日期 年份”,其中周次和月份为英文缩写。
toLocaleDateString方法只将Date对象中存储的日期转换为字符串,显示方法按您的计算机设置的时间格式显示。两者的输出不同见下例:

<script language="javascript">
var newdate=new Date();
var todatestring=newdate.toDateString();
var tolocaledatestring=newdate.toLocaleDateString();
document.write ("toDateString返回效果为:"+todatestring+"<br>")
document.write ("toLocaleDateString返回效果为:"+tolocaledatestring+"<br>")
</script>

 IE中:

toDateString返回效果为:Wed Jan 9 2008
toLocaleDateString返回效果为:2008年1月9日

 FF中:

toDateString返回效果为:Wed Jan 09 2008
toLocaleDateString返回效果为:2008年1月9日

七、toTimeString方法和toLocaleTimeString方法--以字符串的格式返回Date对象中所存储的时间,其中后者显示的方式受您的计算机设置的影响。

  两者显示的不同见下:

 IE中:

toTimeString返回效果为:09:02:22 UTC+0800
toTimeString返回效果为:9:02:22

 FF中:

toTimeString返回效果为:09:02:20 GMT+0800
toTimeString返回效果为:9:02:20

  现在我们来用上面这两个方法简化数字时钟代码:

<html>
<head>
<title>数字时钟</title>
<script language="javaScript">
function display(){
var today=new Date();//以当前时间和日期来创建DATE对象
var date=today.toLocaleDateString();//按本地计算机设置获取当前系统日期
var time=today.toLocaleTimeString();//按本地计算机设置获取当前系统时间
var week=today.getDay();//获取当前日期对应的星期
switch(week)//由于getDay返回值0-6对应的是星期日到星期六,返回值为整数,要转化成中文形式
{
case 0:week="日";break;
case 1:week="一";break;
case 2:week="二";break;
case 3:week="三";break;
case 4:week="四";break;
case 5:week="五";break;
case 6:week="六";break;
}
var listdate="当前时间:"+date+" "+time+" 星期"+week;//定义显示方式
document.getElementById("clock").innerHTML=listdate;
setTimeout("display()",1000);//每一秒重新运行一下DISPLAY()
}
</script>

</head>
<body onload="display()">
<div id="clock"></div>
</body>
</html>

 哈哈,看看,代码简化了不少吧,我们再学习一个Date对象的方法,还可以简化该代码。

八、toString方法和toLocaleString方法--返回Date对象中的日期时间字符串

 两者的不同不用说了,看显示效果就行了:

 IE中:

toString返回效果为:Wed Jan 9 09:18:16 UTC+0800 2008
toLocaleString返回效果为:2008年1月9日 9:18:16

 FF中:

toString返回效果为:Wed Jan 09 2008 09:18:12 GMT+0800
toLocaleString返回效果为:2008年1月9日 9:18:12

 好了,知道这两种方法,数字时钟代码又可以简化了:

<script language="javaScript">
function display(){
var today=new Date();//以当前时间和日期来创建DATE对象
var time=today.toLocaleString();//按本地计算机设置获取当前系统日期及时间
var week=today.getDay();//获取当前日期对应的星期
switch(week)//由于getDay返回值0-6对应的是星期日到星期六,返回值为整数,要转化成中文形式
{
case 0:week="日";break;
case 1:week="一";break;
case 2:week="二";break;
case 3:week="三";break;
case 4:week="四";break;
case 5:week="五";break;
case 6:week="六";break;
}
var listdate="当前时间:"+time+" 星期"+week;//定义显示方式
document.getElementById("clock").innerHTML=listdate;
setTimeout("display()",1000);//每一秒重新运行一下DISPLAY()
}
</script>

  大家还记得getDay()方法返回的星期数和中国的习惯不同吧,所以我们需要转换成和中国习惯相同的格式,在上面的例子中的switch语句的作用就起到了这个功能。我们下面学习一个Date对象的属性,用这个属性来实现相同的转换效果。

九、prototype属性--将新定义的属性或方法添加到Date对象中(这是每个javaScript对象都有的属性)

 基本语法:Date.prototype.methodName=functionName

 参数说明:methodName:必选项,新增方法的名称;functionName:必选项,要添加到对象中的函数名称。

 实例演示
添加一个新方法到Date对象中,该方法的作用是将0-6几个数字转换成对应符合中国习惯的周次。
首先我们要定义一个函数,该函数的功能就是将0-6几个数字转换成对应符合中国习惯的周次,也就是0对应星期日,1-6对应星一至六,然后将该方法添加到Date对象中,然后通过Date对象的实例调用这个新方法。

<script language="javascript">
function chineseWeek(numWeek)//将0-6几个数字转换成对应符合中国习惯的周次,也就是0对应星期日,1-6对应星一至六
{
switch(numWeek){
case 0:return "星期日";break;
case 1:return "星期一";break;
case 2:return "星期二";break;
case 3:return "星期三";break;
case 4:return "星期四";break;
case 5:return "星期五";break;
case 6:return "星期六";break;
}
}
Date.prototype.getChineseWeek=chineseWeek;//getChineseWeek为新定义的方法名称,在下面我们将调用这个新方法;chineseWeek为上面的函数名称。
var newdate=new Date();//按当前时间创建Date对象;
var numWeek=newdate.getDay();//返回当前日期对应的星期数;
var week=newdate.getChineseWeek(numWeek);//调用刚才新定义的getChineseWeek方法
document.write ("今天是:"+week)//输出
</script>

 输出结果:

今天是:星期三

  上面了解一部分Date对象的方法及属性,在继续下面的知识前,我们用数组进一步简化一下数字时钟的代码。我们将定义一个数组 weekName,数组存贮7个中文字符,即日、一、二……六,此时weekName[0]的值为“日”……weekName[6]的值为“六”,而用 getDay()对应的0……6便可作为数组的索引,便可获得符合中文的星期表示方法,详细见下例。

<html>
<head>
<title>数字时钟</title>
<script language="javaScript">
function display(){
var weekName= new Array("日","一","二","三","四","五","六")//将中文星期表示方法保存在数组weekName中
var today=new Date();//以当前时间和日期来创建DATE对象
var time=today.toLocaleString();//按本地计算机设置获取当前系统日期及时间
var week=weekName[today.getDay()];//获取当前日期对应的中文星期;
var listdate="当前时间:"+time+" 星期"+week;//定义显示方式
document.getElementById("clock").innerHTML=listdate;
setTimeout("display()",1000);//每一秒重新运行一下DISPLAY()
}
</script>

</head>
<body onload="display()">
<div id="clock"></div>
</body>
</html>

代码又简化了好多,哈哈!

最后先暂时给出全部Date对象的方法及属性列表,以后还将继续更新本文给出几个实用例子来运用它们。

Date 对象的方法

方法 描述
Date() 返回当日的日期和时间
getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)
getDay() 从 Date 对象返回一周中的某一天 (0 ~ 6)
getMonth() 从 Date 对象返回月份 (0 ~ 11)
getFullYear() 从 Date 对象以四位数字返回年份
getYear() 从 Date 对象以两位或四位数字返回年份。
getHours() 返回 Date 对象的小时 (0 ~ 23)
getMinutes() 返回 Date 对象的分钟 (0 ~ 59)
getSeconds() 返回 Date 对象的秒数 (0 ~ 59))
getMilliseconds() 返回 Date 对象的毫秒(0 ~ 999)
getTime() 返回 1970 年 1 月 1 日至今的毫秒数
getTimezoneOffset() 返回本地时间与格林威治标准时间的分钟差 (GMT)
getUTCDate() 根据世界时从 Date 对象返回月中的一天 (1 ~ 31)
getUTCDay() 根据世界时从 Date 对象返回周中的一天 (0 ~ 6)
getUTCMonth() 根据世界时从 Date 对象返回月份 (0 ~ 11)
getUTCFullYear() 根据世界时从 Date 对象返回四位数的年份
getUTCHours() 根据世界时返回 Date 对象的小时 (0 ~ 23)
getUTCMinutes() 根据世界时返回 Date 对象的分钟 (0 ~ 59)
getUTCSeconds() 根据世界时返回 Date 对象的秒钟 (0 ~ 59)
getUTCMilliseconds() 根据世界时返回 Date 对象的毫秒(0 ~ 999)
parse() 返回1970年1月1日午夜到指定日期(字符串)的毫秒数
setDate() 设置 Date 对象中月的某一天 (1 ~ 31))
setMonth() 设置 Date 对象中月份 (0 ~ 11))
setFullYear() 设置 Date 对象中的年份(四位数字)
setYear() 设置 Date 对象中的年份(两位或四位数字)。
setHours() 设置 Date 对象中的小时 (0 ~ 23)
setMinutes() 设置 Date 对象中的分钟 (0 ~ 59)
setSeconds() 设置 Date 对象中的秒钟 (0 ~ 59)
setMilliseconds() 设置 Date 对象中的毫秒 (0 ~ 999)
setTime() 通过向或从1970年1月1日午夜添加或减去指定数目的毫秒来计算日期和时间
setUTCDate() 根据世界时设置 Date 对象中月份的一天 (1 ~ 31)
setUTCMonth() 根据世界时设置 Date 对象中的月份 (0 ~ 11)
setUTCFullYear() 根据世界时设置 Date 对象中年份(四位数字)
setUTCHours() 根据世界时设置 Date 对象中小时 (0 ~ 23)
setUTCMinutes() 根据世界时设置 Date 对象中分钟 (0 ~ 59)
setUTCSeconds() 根据世界时设置 Date 对象中秒钟 (0 ~ 59)
setUTCMilliseconds() 根据世界时设置 Date 对象中毫秒S(0 ~ 999)
toSource() 代表对象的源代码
toString() 把 Date 对象转换为字符串。
toTimeString() 把 Date 对象的时间部分转换为字符串。
toDateString() 把 Date 对象的日期部分转换为字符串。
toGMTString() 根据格林威治时间,把 Date 对象转换为字符串。
toUTCString() 根据世界时,把 Date 对象转换为字符串。
toLocaleString() 根据本地时间格式,把 Date 对象转换为字符串。
toLocaleTimeString() 根据本地时间格式,把 Date 对象的时间部分转换为字符串
toLocaleDateString() 根据本地时间格式,把 Date 对象的日期部分转换为字符串
UTC() 根据世界时,获得一个日期,然后返回1970年1月1日午夜到该日期的毫秒数。
valueOf() 返回 Date 对象的原始值。

Date 对象的属性

属性 描述
constructor 一个对创建对象的函数的引用
prototype 使您有能力向对象添加属性和方法
300*300
 文章首页关于迷茫时代关于我写意人生
版权所有:迷茫时代 All rights reserved   
执行时间:0.00625 秒