使用了JavaScript这么久了,还没有好好整理过,现在开始整理一下知识,巩固一下。
先从Date对象开始。
Date对象用于处理时间,既然是一个对象,我们就可以使用new这个关键词来得到这个对象,然后就可以使用Date对象本身所提供的方法。得到Date对象可以使用如下的方法
1,var objDate=new Date();//Date 对象自动使用当前的日期和时间作为其初始值。
2, var objDate=new Date(dateVal); //将给定的毫秒数转换为使用的时间
3, var objDate=new Date((year, month, date[, hours[, minutes[, seconds[,ms]]]])
);//指定具体的日期
较常用的是第一种方式和第三种方式。
下面来看一下上面所使用到的参数
dateVal
必选项。如果是数字值,dateVal 表示指定日期与 1970 年 1 月 1 日午夜间全球标准时间 的毫秒数。如果是字符串,则 dateVal 按照 parse 方法中的规则进行解析。dateVal 参数也可以是从某些ActiveX(R) 对象返回的 VT_DATE 值。
year
必选项。完整的年份,比如,1976(而不是 76)。
month
必选项。表示的月份,是从 0 到 11 之间的整数( 1 月至 12 月)。
date
必选项。表示日期,是从 1 到 31 之间的整数。
hours
可选项。 如果提供了 minutes 则必须给出。表示小时,是从 0 到 23 的整数(午夜到 11pm)。
minutes
可选项。 如果提供了 seconds 则必须给出。表示分钟,是从 0 到 59 的整数。
seconds
可选项。 如果提供了 milliseconds 则必须给出。表示秒钟,是从 0 到 59 的整数。
ms
可选项。 表示毫秒,是从 0 到 999 的整数。
已经获得了时间的对象,我们就可以使用这个对象,例如
var date=new Date(); document.write(date);
上面代码得到是本机的时间,时间的现实为 Mon Mar 09 2015 15:43:04 GMT+0800 (中国标准时间),很明显这样的显示格式不是我们想要的,所以我们就要用到Date这个对象的方法,来制定自己的时间显示格式。
然而Date这个对象提供了很多的方法,常用的得到时间方法也就getYear(),getFullYear(),getMonth(),getDate(),getDay(),getHours(),getMinutes(),getSeconds(),getTime()这么几个,下面简单介绍下这几个方法
getYear() 返回Date对象中本地的年份,这个方法已经过时,之所以提供这个方法,是为了保持向后的兼容性。请改用 getFullYear 方法。对于1900-1999这段时间而言,返回的年份值是一个两位数字的整数,它代表了所保存的年份与 1900 年之间的差距。而对于其它的年份,返回值是一个四位的整数。例如,1996 年的返回值是 96,而 1825和 2025 年的返回值则相应地为 1825 和 2025。
注意 对于 JScript 1.0 版,getYear 返回的值始终为 Date 对象中的年份与 1900 年之间的差距。例如,1899 年的返回值是 -1, 而 2000 年的返回值是 100。
var date = new Date(); document.write(date.getYear());
显示的结果是115,而不是我们所期待的2015
getFullYear() 要获取用全球标准时间 (UTC)表示的年份值,请使用 getUTCFullYear 方法。getFullYear 方法以绝对数字的形式返回年份值。例如,1976 年的返回值就是1976。这样可以避免出现 2000 年问 题,从而不会将 2000 年1月1日以后的日期与 1900 年1月1日以后的日期混淆起来。
var date = new Date(); document.write(date.getFullYear());
显示的结果就是我们所期待的2015
getMonth() 得到本地时间表中的月份值,getMonth方法返回一个处于 0 到 11 之间的整数,它代表 Date 对象中的月份值。这个整数并不等于按照惯例来表示月份的数字,而是要比按惯例表示的值小 1。如果一 个 Date 对象中保存的时间值是 "Jan 5, 2015 08:47:00",那么 getMonth()方法就会返回 0。
var date = new Date(); document.write(date.getMonth() + "</br>"); document.write(date.getUTCMonth() + "</br>"); var setDate = new Date("Jan 5, 2015 08:47:00"); document.write(setDate.getMonth() + "</br>");
上面的例子的显示的结果是2 2 0,所以要显示正确的月份要相应的加 1
getDate() 获取当前时间月份中的几号,返回值是一个处于 1 到 31 之间的整数,它代表了相应的 Date 对象中的日期值。
var date = new Date();
document.write(date.getDate()+ "</br>");
运行的结果是 9
getDay() 表示当前时间日期中的周几,getDay方法所返回的值是一个处于 0 到 6 之间的整数,它代表了一周中的某一天
getDay()返回值
对应的星期值
返回值 | 对应值 |
0 | 星期日 |
1 | 星期一 |
2 | 星期二 |
3 | 星期三 |
4 | 星期四 |
5 | 星期五 |
6 | 星期六 |
getHours() 方法返回一个处于 0 到 23 之间的整数,这个值表示从午夜开始计算的小时数。在下面两种情况下此方法的返回值是 0:时间在 1:00:00 am 之前,或者在创建 Date 对象的时候没有将时间保存在该对 象中。而要确定究竟是哪种情况,唯一的方法就是进一步检查分钟和秒钟值是否也是 0。如果这两个值都是 0,那就几乎可以确定是没有将时间值保存到 Date 对象中。
getMinutes() 方法返回一个处于 0 到 59 之间的整数,返回值就等于保存在 Date 对象中的分钟值。在下面两种情况下返回值为 0:在时钟整点之后经过的时间少于一分钟,或者是在创建 Date 对象的时候没有将时间值保存到该对象中。而要确定究竟是哪种情况,唯一的方法是同时检查小时和秒钟值是否也是 0。如果这两个值都是 0,那就几乎可以确定是没有将时间值保存到该 Date 对象中。
getSeconds() 方法返回一个处于 0 到 59 之间的整数,它表示了相应的 Date 对象中的秒钟值。在下面两种情况下,返回值为 0。第一种情况是在当前的一分钟中所经过的时间少于一秒。另外一种情况是在创建 Date 对象时没有将时间值保存到该对象中。而为了确定究竟属于哪种情况,唯一的方法是同时检查小时和分钟值是否也都是 0。如果这两个值都是 0,那就几乎可以确定是没有将时间值保存到 Date 对象中。
getTime() 方法返回一个整数值,这个整数代表了从 1970 年 1 月 1 日开始计算到 Date 对象中的时间之间的毫秒数。日期的范围大约是 1970 年 1 月 1 日午夜的前后各 285,616 年。负数代表 1970 年之前的日期。
至于设置时间,我们可以使用 Date 对象提供的各种set方法,但是最简单的则是在 new 对象的时候我们就可以初始化时间,例如:
var date = new Date("2016"); document.write(date.getFullYear()+ "</br>"); var setDate = new Date(); setDate.setFullYear(2016); document.write(setDate.getFullYear() + "</br>");
得到的结果都是相同的,都是2016,只是写入的数据不同,new Date()填写的是字符串setFullYear()则是相应的整数。
下面给个结合数组显示当前日期的时钟
function showNowDate() { var date = new Date(); var year = date.getFullYear(); var month = date.getMonth(); var day = date.getDate(); var isMonth = new Array("1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"); var isDay = new Array("星期日","星期一","星期二","星期三","星期四","星期五","星期六"); document.write("今天日期是:"+year+"年"+isMonth[month]+day+"日"+" "+isDay[date.getDay()]); }
显示当前具体时间的时钟
function showTimeMethod() { var date = new Date(); var hour = date.getHours(); var minuts = date.getMinutes(); var seconds = date.getSeconds(); document.getElementById("showTime").value = hour + ":" + minuts + ":" + seconds; setTimeout("showTimeMethod()",100); }