日期对象的使用
JavaScript中的日期对象需要使用new Date()实例化对象才能使用,Date()是日期对象的构造函数。在创建日期对象时,可以为Date()构造函数可以传入一些参数,来表示具体的日期,其创建方式如下。
 1  // 方式1:没有参数,使用当前系统的当前时间作为对象保存的时间
 2  var date1 = new Date();
 3  // 输出结果:Wed Oct 16 2019 10:57:56 GMT+0800 (中国标准时间)
 4  console.log(date1); 
 5  // 方式2:传入年、月、日、时、分、秒(月的范围是0~11,即真实月份-1)
 6  var date2 = new Date(2019, 10, 16, 10, 57, 56);
 7  // 输出结果:Sat Nov 16 2019 10:57:56 GMT+0800 (中国标准时间)
 8  console.log(date2); 
 9  // 方式3:用字符串表示日期和时间
 10 var date3 = new Date('2019-10-16 10:57:56');
 11 // 输出结果:Wed Oct 16 2019 10:57:56 GMT+0800 (中国标准时间)
 12 console.log(date3);在使用方式1时,其返回的date1对象保存的是对象创建时的时间;使用方式2时,最少需要指定年、月两个参数,后面的参数在省略时会自动使用默认值;使用方式3时,最少需要指定年份。另外,当传入的数值大于合理范围时,会自动转换成相邻数值(如方式2将月份设为-1表示去年12月,设为12表示明年1月)。
在获取到日期对象后,直接输出对象得到的是一个字符串表示的日期和时间。如果想要用其他格式来表示这个日期和时间,可以通过调用日期对象的相关方法来实现。日期对象的常用方法分为get和set两大类,分别如表1和表2所示。
表1 Date对象的常用get方法
| 方法 | 作用 | 
|---|---|
| getFullYear() | 获取表示年份的4位数字,如2020 | 
| getMonth() | 获取月份,范围0~11(0表示一月,1表示二月,依次类推) | 
| getDate() | 获取月份中的某一天,范围1~31 | 
| getDay() | 获取星期,范围0~6(0表示星期日,1表示星期一,依次类推) | 
| getHours() | 获取小时数,返回0~23 | 
| getMinutes() | 获取分钟数,范围0~59 | 
| getSeconds() | 获取秒数,范围0~59 | 
| getMilliseconds() | 获取毫秒数,范围0~999 | 
| getTime() | 获取从1970-01-01 00:00:00距离Date对象所代表时间的毫秒数 | 
表2 Date对象的常用set方法
| 方法 | 作用 | 
|---|---|
| setFullYear(value) | 设置年份 | 
| setMonth(value) | 设置月份 | 
| setDate(value) | 设置月份中的某一天 | 
| setHours(value) | 设置小时数 | 
| setMinutes(value) | 设置分钟数 | 
| setSeconds(value) | 设置秒数 | 
| setMilliseconds(value) | 设置毫秒数 | 
| setTime(value) | 通过从1970-01-01 00:00:00计时的毫秒数来设置时间 | 
下面我们通过具体代码演示Date对象的使用,在控制台中输出当前日期。
 1  var date = new Date();        // 基于当前日期时间创建Date对象
 2  var year = date.getFullYear();   // 获取年
 3  var month = date.getMonth();     // 获取月
 4  var day = date.getDate();       // 获取日
 5  // 通过数组将星期值转换为字符串
 6  var week = ['星期日', '星期一', '星期二', '星期三', '星期四',
 '星期五', '星期六']; 
 7  // 输出date对象保存的时间,示例:今天是2019年9月16日 星期三
 8  console.log('今天是' + year + '年' + month + '月' + day + '日 ' + 
week[date.getDay()]);在上述代码中,第8行的week[date.getDay()]用来从date对象中获取星期值,然后作为数组的索引到week数组中取出对应的星期字符串。
在开发中,还经常需要将日期对象中的时间转换成指定的格式,示例代码如下。
 1  // 返回当前时间,格式为:时:分:秒,用两位数字表示
 2  function getTime() {
 3   var time = new Date();
 4   var h = time.getHours();
 5   h = h < 10 ? '0' + h : h;
 6   var m = time.getMinutes();
 7   m = m < 10 ? '0' + m : m;
 8   var s = time.getSeconds();
 9   s = s < 10 ? '0' + s : s;
 10  return h + ':' + m + ':' + s;
 11 }
 12 console.log(getTime());   // 输出结果示例:10:07:56在上述代码中,第5、7、9行用来判断给定数字是否为一位数,如果是一位数则在前面加上“0”。










