在任何一门开发语言中,对日期时间类型的处理,必不可少也非常重要,长期以来对于JS的日期类型处理较为苍白。在这里主要对JS中关于日期时间处理的Date对象API进行简单测试。

 

一、Date对象

定义及描述:Date 对象用于处理日期和时间。

语法格式:var myDate=new Date()

注释:Date 对象会自动把当前日期和时间保存为其初始值。

 

二、API

1 <script type="text/javascript">
 2     // Date 对象用于处理日期和时间。
 3     // Date 对象会自动把当前日期和时间保存为其初始值。
 4     var myDate=new Date();
 5     console.log(myDate);    // Tue Oct 24 2017 10:35:14 GMT+0800 (中国标准时间)
 6 
 7     /****** get系列的方法 ******/
 8     // getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)。 
 9     console.log(myDate.getDate());              // 24
10     // getDay() 从 Date 对象返回一周中的某一天 (0 ~ 6)。 
11     console.log(myDate.getDay());               // 2(周二)
12     // getMonth() 从 Date 对象返回月份 (0 ~ 11)。 
13     console.log(myDate.getMonth());             // 9(10月)
14     // getFullYear() 从 Date 对象以四位数字返回年份。 
15     console.log(myDate.getFullYear());          // 2017
16     // getYear() 请使用 getFullYear() 方法代替。 
17     // console.log(myDate.getYear());           // 117
18     // getHours() 返回 Date 对象的小时 (0 ~ 23)。 
19     console.log(myDate.getHours());             // 10
20     // getMinutes() 返回 Date 对象的分钟 (0 ~ 59)。 
21     console.log(myDate.getMinutes());           // 45
22     // getSeconds() 返回 Date 对象的秒数 (0 ~ 59)。 
23     console.log(myDate.getSeconds());           // 40
24     // getMilliseconds() 返回 Date 对象的毫秒(0 ~ 999)。 
25     console.log(myDate.getMilliseconds());      // 389
26     // getTime() 返回 1970 年 1 月 1 日至今的毫秒数。 
27     console.log(myDate.getTime());              // 1508813175137
28     // getTimezoneOffset() 返回本地时间与格林威治标准时间 (GMT) 的分钟差。 
29     console.log(myDate.getTimezoneOffset());    // -480
30 </script>

 

1 <script type="text/javascript">
 2     // Date 对象用于处理日期和时间。
 3     // Date 对象会自动把当前日期和时间保存为其初始值。
 4     var myDate=new Date();
 5     console.log(myDate);                           // Tue Oct 24 2017 10:35:14 GMT+0800 (中国标准时间)
 6     /****** 世界时相关的方法 ******/
 7     // getUTCDate() 根据世界时从 Date 对象返回月中的一天 (1 ~ 31)。 
 8     console.log("1=" + myDate.getUTCDate());       // 24 
 9     // getUTCDay() 根据世界时从 Date 对象返回周中的一天 (0 ~ 6)。 
10     console.log(myDate.getUTCDay());               // 2
11     // getUTCMonth() 根据世界时从 Date 对象返回月份 (0 ~ 11)。 
12     console.log(myDate.getUTCMonth());             // 9
13     // getUTCFullYear() 根据世界时从 Date 对象返回四位数的年份。 
14     console.log(myDate.getUTCFullYear());          // 2017
15     // getUTCHours() 根据世界时返回 Date 对象的小时 (0 ~ 23)。 
16     console.log(myDate.getUTCHours());             // 2
17     // getUTCMinutes() 根据世界时返回 Date 对象的分钟 (0 ~ 59)。 
18     console.log(myDate.getUTCMinutes());           // 50
19     // getUTCSeconds() 根据世界时返回 Date 对象的秒钟 (0 ~ 59)。 
20     console.log(myDate.getUTCSeconds());           // 35
21     // getUTCMilliseconds() 根据世界时返回 Date 对象的毫秒(0 ~ 999)。 
22     console.log(myDate.getUTCMilliseconds());      // 364
23 
24     // parse() 返回1970年1月1日午夜到指定日期(字符串)的毫秒数。 
25     console.log(Date.parse("Jul 8, 2005"));        // 1120752000000
26 </script>

 

1 <script type="text/javascript">
 2     // Date 对象用于处理日期和时间。
 3     // Date 对象会自动把当前日期和时间保存为其初始值。
 4     var myDate=new Date();
 5     console.log(myDate);        // Tue Oct 24 2017 11:10:47 GMT+0800 (中国标准时间)
 6     
 7     /****** set相关的方法 ******/
 8     // setDate() 设置 Date 对象中月的某一天 (1 ~ 31)。
 9     myDate.setDate(15);
10     console.log(myDate);        // Sun Oct 15 2017 11:10:47 GMT+0800 (中国标准时间)
11 
12     // setMonth() 设置 Date 对象中月份 (0 ~ 11)。 
13     // 语法格式:dateObject.setMonth(month,day)
14     // month 必需。一个表示月份的数值,该值介于 0(一月) ~ 11(十二月) 之间。 
15     // day 可选。一个表示月的某一天的数值,该值介于 1 ~ 31 之间(以本地时间计)。在 EMCAScript标准化之前,不支持该参数。
16     myDate.setMonth(0);
17     console.log(myDate);        // Sun Jan 15 2017 11:10:47 GMT+0800 (中国标准时间)
18 
19     // setFullYear() 设置 Date 对象中的年份(四位数字)。 
20     // 语法格式:dateObject.setFullYear(year,month,day)
21     myDate.setFullYear(2018);
22     console.log(myDate);        // Mon Jan 15 2018 11:10:47 GMT+0800 (中国标准时间)
23     // setYear() 请使用 setFullYear() 方法代替。 
24     // console.log();
25 
26     // setHours() 设置 Date 对象中的小时 (0 ~ 23)。 
27     myDate.setHours(22);
28     console.log(myDate);        // Mon Jan 15 2018 22:10:47 GMT+0800 (中国标准时间)
29 
30     // setMinutes() 设置 Date 对象中的分钟 (0 ~ 59)。 
31     myDate.setMinutes(58);
32     console.log(myDate);        // Mon Jan 15 2018 22:58:47 GMT+0800 (中国标准时间)
33     
34     // setSeconds() 设置 Date 对象中的秒钟 (0 ~ 59)。 
35     myDate.setSeconds(58);
36     console.log(myDate);        // Mon Jan 15 2018 22:58:58 GMT+0800 (中国标准时间)
37     
38     // setMilliseconds() 设置 Date 对象中的毫秒 (0 ~ 999)。 
39     myDate.setMilliseconds(988);
40     console.log(myDate);        // Mon Jan 15 2018 22:58:58 GMT+0800 (中国标准时间)
41     
42     // setTime() 以毫秒设置 Date 对象。 
43     myDate.setTime(77771564221);
44     console.log(myDate);        // Mon Jun 19 1972 11:12:44 GMT+0800 (中国标准时间)                
45 </script>

 

1 <script type="text/javascript">
 2     // Date 对象用于处理日期和时间。
 3     // Date 对象会自动把当前日期和时间保存为其初始值。
 4     var myDate=new Date();
 5     console.log(myDate);        // Tue Oct 24 2017 11:10:47 GMT+0800 (中国标准时间)
 6     
 7     /****** set相关的方法 ******/
 8     // setUTCDate() 根据世界时设置 Date 对象中月份的一天 (1 ~ 31)。 
 9     console.log();
10     // setUTCMonth() 根据世界时设置 Date 对象中的月份 (0 ~ 11)。 
11     console.log();
12     // setUTCFullYear() 根据世界时设置 Date 对象中的年份(四位数字)。 
13     console.log();
14     // setUTCHours() 根据世界时设置 Date 对象中的小时 (0 ~ 23)。 
15     console.log();
16     // setUTCMinutes() 根据世界时设置 Date 对象中的分钟 (0 ~ 59)。 
17     console.log();
18     // setUTCSeconds() 根据世界时设置 Date 对象中的秒钟 (0 ~ 59)。 
19     console.log();
20     // setUTCMilliseconds() 根据世界时设置 Date 对象中的毫秒 (0 ~ 999)。 
21     console.log();        
22 </script>

 

1 <script type="text/javascript">
 2     // Date 对象用于处理日期和时间。
 3     // Date 对象会自动把当前日期和时间保存为其初始值。
 4     var myDate=new Date();
 5     console.log(myDate);        // Tue Oct 24 2017 11:20:07 GMT+0800 (中国标准时间)
 6     
 7     /***** to相关的方法 *****/
 8     // toSource() 返回该对象的源代码。 
 9     /*function employee(name,job,born){
10         this.name=name;
11         this.job=job;
12         this.born=born;
13     }*/
14     //var bill = new employee("Bill Gates","Engineer",1985);
15     //console.log(bill.toSource());        // Chrome bill.toSource is not a function
16 
17     // toString() 把 Date 对象转换为字符串。 
18     console.log(myDate.toString());                // Tue Oct 24 2017 11:20:07 GMT+0800 (中国标准时间)
19     // toTimeString() 把 Date 对象的时间部分转换为字符串。 
20     console.log(myDate.toTimeString());            // 11:20:07 GMT+0800 (中国标准时间)
21     // toDateString() 把 Date 对象的日期部分转换为字符串。 
22     console.log(myDate.toDateString());            // Tue Oct 24 2017
23     // toGMTString() 请使用 toUTCString() 方法代替。 
24     console.log(myDate.toGMTString());             // Tue, 24 Oct 2017 03:20:07 GMT
25     // toUTCString() 根据世界时,把 Date 对象转换为字符串。 
26     console.log(myDate.toUTCString());             // Tue, 24 Oct 2017 03:20:07 GMT
27     // toLocaleString() 根据本地时间格式,把 Date 对象转换为字符串。 
28     console.log(myDate.toLocaleString());          // 2017/10/24 上午11:20:07
29     // toLocaleTimeString() 根据本地时间格式,把 Date 对象的时间部分转换为字符串。 
30     console.log(myDate.toLocaleTimeString());      // 上午11:20:07
31     // toLocaleDateString() 根据本地时间格式,把 Date 对象的日期部分转换为字符串。 
32     console.log(myDate.toLocaleDateString());      // 2017/10/24
33     // UTC() 根据世界时返回 1997 年 1 月 1 日 到指定日期的毫秒数。 
34     console.log(Date.UTC());                       // NaN
35     // valueOf() 返回 Date 对象的原始值。 
36     console.log(myDate.valueOf());                 // 1508815207388
37 </script>