JavaScript:Date对象
Date 对象
Date 对象用于处理日期与实际。
创建 Date 对象: new Date().
以上四种方法同样可以创建 Date 对象:
var d = new Date(milliseconds);
var d = new Date(dateString);
var d = new Date(year, month, day, hours, minutes, seconds, milliseconds);
更完整的日期与实际教程请参照 JavaScript Date 对象教程。
Date 对象属性
属性 | 描述 |
---|---|
constructor | 返回对创建此对象的 Date 函数的引用。 |
prototype | 使您有能力向对象添加属性和方法。 |
Date 对象方法
方法 | 描述 |
---|---|
getDate() | 从 Date 对象返回一个月中的某一天 (1 ~ 31)。 |
getDay() | 从 Date 对象返回一周中的某一天 (0 ~ 6)。 |
getFullYear() | 从 Date 对象以四位数字返回年份。 |
getHours() | 返回 Date 对象的小时 (0 ~ 23)。 |
getMilliseconds() | 返回 Date 对象的毫秒(0 ~ 999)。 |
getMinutes() | 返回 Date 对象的分钟 (0 ~ 59)。 |
getMonth() | 从 Date 对象返回月份 (0 ~ 11)。 |
getSeconds() | 返回 Date 对象的秒数 (0 ~ 59)。 |
getTime() | 返回 1970 年 1 月 1 日至今的毫秒数。 |
getTimezoneOffset() | 返回本地时间与格林威治标准时间 (GMT) 的分钟差。 |
getUTCDate() | 根据世界时从 Date 对象返回月中的一天 (1 ~ 31)。 |
getUTCDay() | 根据世界时从 Date 对象返回周中的一天 (0 ~ 6)。 |
getUTCFullYear() | 根据世界时从 Date 对象返回四位数的年份。 |
getUTCHours() | 根据世界时返回 Date 对象的小时 (0 ~ 23)。 |
getUTCMilliseconds() | 根据世界时返回 Date 对象的毫秒(0 ~ 999)。 |
getUTCMinutes() | 根据世界时返回 Date 对象的分钟 (0 ~ 59)。 |
getUTCMonth() | 根据世界时从 Date 对象返回月份 (0 ~ 11)。 |
getUTCSeconds() | 根据世界时返回 Date 对象的秒钟 (0 ~ 59)。 |
getYear() | 已废弃。 请使用 getFullYear() 方法代替。 |
parse() | 返回1970年1月1日午夜到指定日期(字符串)的毫秒数。 |
setDate() | 设置 Date 对象中月的某一天 (1 ~ 31)。 |
setFullYear() | 设置 Date 对象中的年份(四位数字)。 |
setHours() | 设置 Date 对象中的小时 (0 ~ 23)。 |
setMilliseconds() | 设置 Date 对象中的毫秒 (0 ~ 999)。 |
setMinutes() | 设置 Date 对象中的分钟 (0 ~ 59)。 |
setMonth() | 设置 Date 对象中月份 (0 ~ 11)。 |
setSeconds() | 设置 Date 对象中的秒钟 (0 ~ 59)。 |
setTime() | setTime() 方法以毫秒设置 Date 对象。 |
setUTCDate() | 根据世界时设置 Date 对象中月份的一天 (1 ~ 31)。 |
setUTCFullYear() | 根据世界时设置 Date 对象中的年份(四位数字)。 |
setUTCHours() | 根据世界时设置 Date 对象中的小时 (0 ~ 23)。 |
setUTCMilliseconds() | 根据世界时设置 Date 对象中的毫秒 (0 ~ 999)。 |
setUTCMinutes() | 根据世界时设置 Date 对象中的分钟 (0 ~ 59)。 |
setUTCMonth() | 根据世界时设置 Date 对象中的月份 (0 ~ 11)。 |
setUTCSeconds() | setUTCSeconds() 方法用于根据世界时 (UTC) 设置指定时间的秒字段。 |
setYear() | 已废弃。请使用 setFullYear() 方法代替。 |
toDateString() | 把 Date 对象的日期部分转换为字符串。 |
toGMTString() | 已废弃。请使用 toUTCString() 方法代替。 |
toISOString() | 使用 ISO 标准返回字符串的日期格式。 |
toJSON() | 以 JSON 数据格式返回日期字符串。 |
toLocaleDateString() | 根据本地时间格式,把 Date 对象的日期部分转换为字符串。 |
toLocaleTimeString() | 根据本地时间格式,把 Date 对象的时间部分转换为字符串。 |
toLocaleString() | 据本地时间格式,把 Date 对象转换为字符串。 |
toString() | 把 Date 对象转换为字符串。 |
toTimeString() | 把 Date 对象的时间部分转换为字符串。 |
toUTCString() | 根据世界时,把 Date 对象转换为字符串。 |
UTC() | 根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数。 |
valueOf() | 返回 Date 对象的原始值。 |
JSON 日期转 JS日期,我们知道,日期类型转成JSON之后,返回的数据类似这样:
/Date(1379944571737)/
但是这种日期并不能直接显示,因为根本没有人知道这是什么意思,下面提供一种JSON日期转JS日期的方式。
function ConvertJSONDateToJSDate(jsondate) { var date = new Date(parseInt(jsondate.replace("/Date(", "").replace(")/", ""), 10)); return date; }
在提供两种Date转习惯视觉的日期格式:
//yyyy-MM-dd function getDate(date) { var year = date.getFullYear(); var month = date.getMonth() + 1; var day = date.getDate(); return year + "-" + month + "-" + day ; } //yyyy-MM-dd HH:mm:SS function getDateTime(date) { var year = date.getFullYear(); var month = date.getMonth() + 1; var day = date.getDate(); var hh = date.getHours(); var mm = date.getMinutes(); var ss = date.getSeconds(); return year + "-" + month + "-" + day + " " + hh + ":" + mm + ":" + ss; }
将一个字符串转换为Date对象的写法:
var str = "2012-12-12"; var date = new Date(str); //字符串转换为Date对象 document.write(date.getFullYear()); //然后就可以使用Date对象的方法输出年份了
一、Date.getDate() 返回是日期对象中月份中的几号。
var date = new Date(); //2012-12-19 document.write(date.getDate()); //返回 19 是19号
二、Date.getDay() 返回日期中的星期几 星期天0-星期6
var date = new Date(); document.write(date.getDay()); //3 星期3
三、Date.getFulYead() 返回年份 如2012。
var date = new Date(); document.write(date.getFullYear()); //返回2012,2012年
四、Date.getHours() 返回日期中的小时,几点了,0-23
var date = new Date(); document.write(date.getHours()); //返回23,晚上11点
五、Date.getMilliseconds() 返回日期中的毫秒数
var date = new Date(); document.write(date.getMilliseconds()); //返回27 当前是xx年,xx月,xx点,xx分,xx秒,xx毫秒的毫秒
六、Date.getMinutes() 返回日期中的分钟数 0-59
var date = new Date(); document.write(date.getMinutes()); //2012-12-19 23:22 返回22,12点22分
七、Date.getMonth() //返回日期中的月份数,返回值0(1月)-11(12月)
var date = new Date(); document.write(date.getMonth()); //2012-12-19 此处返回11,注意此处与通常理解有些偏差,1月份返回是0,12月返回是11
八、Date.getSeconds() //返回一个日期的描述
var date = new Date(); document.write(date.getSeconds());·//返回34,2012-12-19 23:27:34 27分34秒
九、Date.getTime() //将一个日期对象以毫秒形式返回
var date = new Date(); document.write(date.getTime()); //返回1355930928466 返回值是1970-01-01 午夜到当前时间的毫秒数。
十、Date.getTimezoneOffset() //GMT时间与本地时间差,用分钟表示
var date = new Date(); document.write(date.getTimezoneOffset()); //返回-480 实际上这个函数获取的是javascript运行于哪个时区。单位是分钟。
十一、Date.getUTCDate() //返回Date对象中的日期值,(全球时间)
var date = new Date(); document.write(date.getUTCDate()); //返回19 19号
十二、Date.getUTCDay() //返回Date对象中的星期几,(全球时间)
var date = new Date(); document.write(date.getUTCDay()); //返回3 星期3
十三、Date.getUTCFullYear() //返回Date中的年份,4位,如2012,(全球时间)
var date = new Date(); document.write(date.getUTCFullYear()); //返回2012
十四、Date.getUTCHours() //返回Date对象中的小时数,就是现在是几点,终于有一个跟getHours()不同了,应该是时差关系,返回的是全球时间里的。
var date = new Date(); document.write(date.getUTCHours()); //现在北京时间是2012-12-19 23:44,但是返回的是15,也就是全球时间中的小时数。
十五、Date.getUTCMilliserconds() //返回Date对象中的毫秒数,(全球时间)
var date = new Date(); document.write(date.getMilliseconds()); //返回全球时间中的毫秒数
十六、Date.getUTCMinutes() //返回Date对象中的分钟数,(全球时间)
var date = new Date(); document.write(date.getMinutes()); //2012-12-19 23:49 返回49,注意是全球时间,其实全球时间应该就小时不同而已吧。
十七、Date.getUTCMonth() //返回Date对象中月份值,(全球时间)
var date = new Date(); document.write(date.getMonth()); //2012-12-19 返回11,0(1月份)-11(12月份)
十八、Date.getUTCSeconds() //返回Date对象中的秒数值
var date = new Date(); document.write(date.getSeconds()); //返回秒数值 返回33
十九、Date.getYear() //返回Date对象中的年份值减去1900
var date = new Date(); document.write(date.getYear()); //2012-12-19 返回112 (2012-1900)
二十、Date.now() 静态方法 //返回1970-01-01午夜到现在的时间间隔,用毫秒表述
document.write(Date.now()); //静态方法,返回当前时间与1970-01-01的时间间隔,毫秒单位。
二十一、Date.parse() //解析一个日期时间字符串,返回1970-01-01午夜到给定日期之间的毫秒数
var date = "2012-12-19"; document.write(Date.parse(date)); //返回 1355875200000
var da = new Date(date);
document.write("<br/>" + da.getFullYear() + "-" + da.getMonth() + "-" + da.getDate()); //输出2012-11-19 //注意月份是从0-11
二十二、Date.setDate() //设置一个Date对象中的日期值,返回值用调整后的日期的毫秒表示
var date = new Date(); document.write(date.setDate(11)); //返回1355236647980 //设置为11,其实是12月,设置为3其实是4月
var da = new Date(date);
document.write("<br/>" + da.getFullYear() + "-" + da.getMonth() + "-" + da.getDate()); //输出2012-11-11 //注意月份是从0-11,设置的时候要注意
二十三、Date.setFullYear() //设置一个Date对象中的年份,返回值用调整后的日期的毫秒表示。
var date = new Date(); 今天是2012-12-20 document.write(date.setFullYear(1989)); //返回630167981030 var da = new Date(date); document.write("<br/>" + da.getFullYear() + "-" + da.getMonth() + "-" + da.getDate()); //输出1989-11-20
二十四、Date.setHours() //设置一个Date对象中的小事数,返回值用调整后的日期的毫秒表示。
var date = new Date(); //现在是2012-12-52 22:52 document.write(date.setHours(5)); //返回1355954000882 var da = new Date(date); document.write("<br/>" + da.getHours()); //输出05
二十五、Date.setMilliseconds() //设置一个日期的毫秒数
var date = new Date(); //现在是2012-12-20 document.write(date.setMilliseconds(22)); //返回1356015393022 注意最后两位,无论如何刷新都是22
二十六、Date.setMinutes() //设置一个日期的分钟数
var date = new Date(); //现在是2012-12-52 22:52 document.write(date.setMinutes(1)); //返回1356012067105 var da = new Date(date); document.write("<br/>" + da.getMinutes()); //输出1
二十七、Date.setMonth() //设置一个日期的月份数
var date = new Date(); //现在是2012-12-20 document.write(date.setMonth(2)); //返回1332255597722 var da = new Date(date); document.write("<br/>" + da.getMonth()); //输出2
二十八、Date.setSeconds() //设置一个日期的描述
语法:date.setSeconds(seconds)
date.setSeconds(seconds,millis)
var date = new Date(); //现在是2012-12-20 document.write(date.setSeconds(3)); //返回1356015783872 var da = new Date(date); document.write("<br/>" + da.getSeconds()); //输出3
二十九、Date.setTime() //使用毫秒数设置一个时间
语法:date.setTime(milliseonds)
var date = new Date(); //现在是2012-12-20 document.write(date.setTime(1356015783872)); //返回1356015783872 var da = new Date(date); document.write("<br/>" + da.getDate()); //输出20
三十、Date.setUTCDate() //设置一个Date对象中对应月的日期值,就是几号(全球时间)
语法:date.setUTCDate(day-of-month)
var date = new Date(); //现在是2012-12-20 document.write(date.setUTCDate(12)); //返回1355324952003 var da = new Date(date); document.write("<br/>" + da.getDate()); //输出12
三十一、Date.setUTCFullYear() //设置一个Date对象中对应的年份,全球时间
语法:date.setUTCFullYear(year)
date.setUTCFullYear(year,month)
date.setUTCFullYear(year,month,day)
var date = new Date(); //现在是2012-12-20 document.write(date.setUTCFullYear(1999)); //返回945702713666 var da = new Date(date); document.write("<br/>" + da.getFullYear()); //输出1999
三十二、Date.setUTCHours() //设置一个Date对象中对应的小时数,(全球时间)
语法:date.setUTCHours(hours)
date.setUTCHours(hours,minutes)
date.setUTCHours(hours,minutes,seconds)
date.setUTCHours(hours,minutes,seconds,millis)
var date = new Date(); //现在是2012-12-20 document.write(date.setUTCHours(05)); //返回1355980581928 var da = new Date(date); document.write("<br/>" + da.getUTCHours()); //输出5
三十三、Date.setUTCMilliseconds() //设置一个Date对象中对应的毫秒数,(全球时间)
语法:date.setUTCMilliseconds(millis)
var date = new Date(); //现在是2012-12-20 document.write(date.setMilliseconds(05)); //返回1356016784005 注意此处无论如何刷新都是05结尾
三十四、Date.setUTCMinutes() //设置一个Date对象的分钟、秒钟、以及毫秒值。
语法:date.setUTCMinutes(minutes)
date.setUTCMinutes(minutes,seconds)
date.setUTCMinutes(minutes,seconds,millis)
var date = new Date(); //现在是2012-12-20 document.write(date.setUTCMinutes(25)); //返回1356017146549 var da = new Date(date); document.write("<br/>" + da.getUTCMinutes()); //输出5
三十五、Date.setUTCMonth() //设置一个Date对象的月份值及日期值
语法:date.setUTCMonth(month)
date.setUTCMonth(month,day)
var date = new Date(); //现在是2012-12-20 document.write(date.setMonth(01)); //返回1329751527983 var da = new Date(date); document.write("<br/>" + da.getUTCMonth()); //输出1
三十六、Date.setUTCSeconds() //设置一个Date的秒钟及毫秒值
语法:date.setUTCSeconds(seconds)
date.setUTCSeconds(seconds,millis)
var date = new Date(); //现在是2012-12-20 document.write(date.setUTCSeconds(01)); //返回1356017281976 var da = new Date(date); document.write("<br/>" + da.getUTCSeconds()); //输出1
三十七、Date.setYears() //设置一个Date对象的年份值,如果给的参数在0-99之间,它将会加上1900以便把它当中1900-1999之间的年份处理。如果输入4位数 则把它当成FullYear设置
语法:date.setYears(year)
var date = new Date(); //现在是2012-12-20 document.write(date.setYear(22)); //返回1356017281976 var da = new Date(date); document.write("<br/>" + da.getFullYear()); //输出1922
var date = new Date(); //现在是2012-12-20 document.write(date.setYear(2011)); //返回1324395113386 var da = new Date(date); document.write("<br/>" + da.getFullYear()); //输出2011
三十八、Date.toDateString() //以字符串的形式返回一个Date的日期部分
语法:date.toDateString()
var date = new Date(); //现在是2012-12-20 document.write(date.toDateString("yyyy-MM-dd")); //返回Thu Dec 20 2012
三十九、Date.toTimeString() //以字符串的形式返回一个Date的时间部分
语法:date.toTimeString()
var date = new Date(); //现在是2012-12-20 document.write(date.toTimeString("yyyy-MM-dd")); //返回23:38:33 GMT+0800
四十、Date.toISOString() //将一个Date对象转换为ISO-8601格式的字符串
语法;date.toISOString() //返回的字符串格式为yyyy-mm-ddThh:mm:ssZ
var date = new Date(); //现在是2012-12-20 document.write(date.toISOString()); //返回2012-12-20T15:45:47.493Z
四十一、Date.toJSON //JSON序列化一个对象
语法:date.toJSON(key) //date的一个字符串表示形式,值为调用它的toISOString()方法的结果
var date = new Date(); //现在是2012-12-20 document.write(date.toJSON()); //返回2012-12-20T15:45:47.493Z
四十二、Date.toLocaleDateString() //以本地格式的字符串返回一个Date的日期部分
语法:date.toLolcaleDateString //返回一个本地人可读的日期格式,日期部分
var date = new Date(); //现在是2012-12-20 document.write(date.toLocaleDateString()); //返回2012年12月20日
四十三、Date.toLocaleString() //将一个Date转化难为一个本地格式的字符串
语法:date.toLocaleString()
var date = new Date(); //现在是2012-12-22 document.write(date.toLocaleString()); //返回2012年12月22日 19:56:40
四十四、Date.toLocaleTimeString() //将一个Date转化为本地的格式的时间部分
var date = new Date(); //现在是2012-12-22 document.write(date.toLocaleTimeString()); //返回19:57:23
四十五、Date.toString() //将一个Date转换为一个字符串
var date = new Date(); //现在是2012-12-22 document.write(date.toString()); //返回Sat Dec 22 2012 19:59:17 GMT+0800
四十六、Date.toTimeString() //以字符串的形式返回一个Date对象的时间部分
var date = new Date(); //现在是2012-12-22 document.write(date.toString()); //返回Sat Dec 22 2012 19:59:17 GMT+0800
四十七、Date.toUTCString() //将一个Date对象转换为字符串(全球时间)
var date = new Date(); //现在是2012-12-22 document.write(date.toUTCString()); //返回Sat, 22 Dec 2012 12:00:42 GMT
四十八、Date.UTC() //将一个Date对象转换毫秒的形式 静态方法
语法:Date.UTC(year,month,day,hours,minutes,seconds,ms)
document.write(Date.UTC(2011, 11, 11, 11, 11, 11)); //返回1323601871000
四十九、Date.valueOf() //如果是一个Date对象,将一个Date对象转为毫秒的形式,否则不显示
var date = ""; document.write(date.valueOf()); //不是Date对象,不输出 var date1 = new Date(); document.write(date1.valueOf()); //输出1356180400916
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:22FF中:
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:16FF中:
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 对象的属性
FF: Firefox, N: Netscape, IE: Internet Explorer
属性 描述 constructor 一个对创建对象的函数的引用 prototype 使您有能力向对象添加属性和方法