Date类型
要创建一个日期对象,使用new操作符和Date构造函数即可。如下所示:
var date = new Date();
在调用Date函数构造函数而不传递参数的情况下,新创建的对象会自动获取当前日期和时间。
Date类型的继承方法
与其他引用类型一样,Date类型也重写了toLocaleString()、toString()和valueOf()方法,这些类型的返回值与其他类型中的方法不同。Date类型的toLocaleString()方法会按照浏览器设置的地区相适应的格式返回日期和时间。而toString()方法通常返回带有时区信息的日期和时间。Date类型的valueOf()方法不会返回字符串,而是返回时间的毫秒表示。因此可以方便使用比较操作符来比较日期值。举个例子:
var date = new Date(2019,0,1); //2019年1月1日
var date2 = new Date(2019,1,1); //2019年2月1日
alert(date < date2); //true
alert(date > date2); //false
从逻辑上讲,2019年1月1日要早于2019年2月1日,此时如果我们说前者小于后者比较符合常理。而表示2019年1月1日的毫秒值小于表示2019年2月1日的毫秒值,因此在首先使用小于操作符比较日期时,返回的结果是true。
日期格式化方法
Date类型还有一些专门用于将日期格式化为字符串的方法。
- toDateString()——以特定的实现格式显示星期几、月、日和年;
- toTimeString()——以特定的实现格式显示时、分、秒和时区;
- toLocaleDateString()——以特定于地区的的格式显示星期几、月、日和年;
- toLocaleTimeString()——以特定于实现的格式显示时、分、秒;
- toUTCString()——以特定于实现的格式完整的UTC日期;
toLocaleString()和toString()方法一样,以上这些字符串格式方法的输出也是因浏览器而异的,因此哪一个方法能够用来在用户界面显示一致的日期信息。
Date类型的方法
常用的Date类型的方法有:
- getTime()——返回表示日期的毫秒数,与valueOf()方法返回值相同
- setTIme()——以毫秒数设置日期,会改变整个日期
- getFullYear()——取得4位数年份(比如:2019)
- setFullYear()——设置日期的年份。传入的年份值必须是4位数(比如:2019)
- getMonth()——返回日期中的月份(0~11)
- setMonth()——设置日期的月份值。传入的月份值必须大于0,超过11则增加年份
- getDate()——返回日期中的天数(1~31)
- setDate()——设置日期中的天数(如果传入的值超过该月中的天数,则增加月份)
- getDay()——返回日期中的星期几(0~6)
- getHours()——返回日期中的小时数(0~23)
- setHours()——设置日期中的小时数,传入的值超过了23则增加月份中的天数
- getMinutes()——返回日期中的分钟数(0~59)
- setMinutes()——设置日期中的分钟数,传入的值如果超过59则增加小时数
- getSeconds()——返回日期的秒数(0~59)
- setSeconds()——设置日期的秒数,如果传入的值超过59则增加日期中的分钟数
- getMilliseconds()——返回日期中的毫秒数
- setMIlliseconds()——设置日期中的毫秒数