本文主要整理了js的Date(日期)类型数据得一些用法,也算是对自己学习的一个总结。
- Date():返回当前时间的字符串(基于本地时区),不管传入什么参数,返回的只是一个单纯的字符串而已,并没有getDay()、getMonth()等方法
Date(); Date(666); Date('ppp'); //Sun May 08 2016 14:35:59 GMT+0800 (中国标准时间)
- new Date():根据参数来返回对应的值,无参数的时候,返回当前时间的字符串形式(一个日期对象),有getDay()等方法
//1.不传参数: new Date();//返回当前时间(基于本地时区):Sun May 08 2016 15:18:03 GMT+0800 //2.传入时间的毫秒数,可以使用Date.parse()和Date.UTC()来获得自定义时间的毫秒 数 new Date(Date.parse("12/13/2020"));//返回Sun Dec 13 2020 00:00:00 GMT+0800 new Date(Date.UTC(2020,11,13);//返回GMT时间Sun Dec 13 2020 08:00:00 GMT+0800 //3.直接传入日期: new Date(2016,0);//基于本地时区2016年1月1日零时 new Date(2016,5,8,13,42,26);//基于本地时区2016年6月8号13时42分26秒
- 常用的一些方法:
- Date.parse()和Date.UTC():返回传入的时间对应的毫秒数(从1970年1月1日零时算起)
Date.parse("12/13/2020");//返回1607788800000 Date.UTC(2020,11,13,0,0,0);//返回GMT时间(比本地多8小时)的毫秒数1607817600000
两者参数规则的不同:
Date.parse()方法接收一个表示日期的字符串参数,例如要表示2016年10月16号对应的毫秒数,可以 这样做:Date.parse("10/16/2016")或Date.parse("2016/10/16"),也可以写成Date.parse("2016-10-16"),但是只在chrome中才会返回数据,如果传入的字符串不能表示日期,那么它会返回NaN,看起来很简单是吧,但实际上此方法的行为因实现而异,而且通常 是因地区而异,用兴趣的童鞋可以查阅相关资料了解一下。
Date.UTC()的参数分别是年份、基于0的月份(一月是0;二月是1,以此类推)、月中的哪一天(1到31)、小时数(0到23)、分钟、秒以及毫秒数。在这些参数中,只有前两个参数(年和月)是必须的。如果没有提供月中的天数,则假设天数为1;如果省略其他参数,则统统假设为0。 - Date.now():和调用Date构造函数而不传参的情况十分类似,是ECMAScript5新增的方法,返回表示调用这个方法时的日期和时间的毫秒数,兼容IE9+、Firefox 3+、Opera 10.5和chrome。
- 日期/时间组件方法
setFullYear(年)/setUTCFullYear(年);//设置日期中的年数
setMonth(月)/setUTCMonth(月);//设置日期中的月数
setDate(日)/setUTCDate(日);//设置日期中的日数
setHour(时)/setUTCHour(时);//设置日期中的小时数
setMinutes(分)/setUTCMinutes(分);//设置日期中的分钟数
setSeconds(秒)/setUTCSeconds(秒);//设置日期中的秒数
setMilliseconds(毫秒)/setUTCMilliseconds(毫秒);//设置日期中的毫秒数
setTime(毫秒);//以毫秒数设置日期,会改变整个日期var dd=new Date(2016,4,8,17,3,46,600);//2016年5月8号17时3分46秒600毫秒 dd.setDate(16);//将日期的天数变为16|Mon May 16 2016 17:03:46 GMT+0800 dd.setUTCDate(17);//再将UTC日期的天数变为17|Tue May 17 2016 17:03:46 GMT+0800 dd.setHours(18);//再将日期的小时数变为18|Tue May 17 2016 18:03:46 GMT+0800 dd.setUTCHours(25);//参数大小超过了24,所以加一天,小时数变为1,转换为GMT时间再加8小时|Wed May 18 2016 09:03:46 GMT+0800
var myDate=new Date();
myDate.getYear() || myDate.getUTCYear() //获取当前年份(2位或3位)
myDate.getFullYear() ||myDate.getUTCFullYear() //获取完整的年份(4位,1970-????)
myDate.getMonth() || myDate.getUTCMonth() //获取当前月份(0-11,0代表1月)
myDate.getDate() || myDate.getUTCDate() //获取当前日(1-31)
myDate.getDay() || myDate.getUTCDay() //获取当前星期X(0-6,0代表星期天)
myDate.getTime() || myDate.getUTCTime() //获取当前时间(从1970.1.1开始的毫秒数)
myDate.getHours() || myDate.getUTCHours() //获取当前小时数(0-23)
myDate.getMinutes() || myDate.getUTCMinutes() //获取当前分钟数(0-59)
myDate.getSeconds() || myDate.getUTCSeconds() //获取当前秒数(0-59)
myDate.getMilliseconds() || myDate.getUTCMilliseconds() //获取当前毫秒数(0-999)
myDate.getYear() || myDate.getUTCYear() //获取当前年份(2位或3位)
myDate.getFullYear() ||myDate.getUTCFullYear() //获取完整的年份(4位,1970-????)
myDate.getMonth() || myDate.getUTCMonth() //获取当前月份(0-11,0代表1月)
myDate.getDate() || myDate.getUTCDate() //获取当前日(1-31)
myDate.getDay() || myDate.getUTCDay() //获取当前星期X(0-6,0代表星期天)
myDate.getTime() || myDate.getUTCTime() //获取当前时间(从1970.1.1开始的毫秒数)
myDate.getHours() || myDate.getUTCHours() //获取当前小时数(0-23)
myDate.getMinutes() || myDate.getUTCMinutes() //获取当前分钟数(0-59)
myDate.getSeconds() || myDate.getUTCSeconds() //获取当前秒数(0-59)
myDate.getMilliseconds() || myDate.getUTCMilliseconds() //获取当前毫秒数(0-999)
var dd=new Date();//Sun May 08 2016 19:36:03 GMT+0800 var dd1=dd.getFullYear();//2016 var dd2=dd.getYear();//116 var dd3=dd.getMonth();//4 var dd4=dd.getUTCHours();//11
- 继承的方法
toLocaleString();//返回浏览器设置的时区的日期和时间(会包含AM或PM,但不包含时区)
toString();//返回带有时区的日期和时间(时间一般为24小时格式)
valueOf();//返回日期的毫秒数表示var dd=new Date(); var dd1=dd.toLocaleString();//2016/5/8 下午7:30:23 var dd2=dd.toString();//Sun May 08 2016 19:30:23 GMT+0800 var dd3=dd.valueOf();//1462707023915
- 日期格式化方法
toDateString();//以特定于实现的格式显示星期、月、日、年
toTimeString();//以特定于实现的格式显示时分秒和时区
toLocaleDateString();//以特定于地区的格式显示星期、月、日、年
toLocaleTimeString();//以特定于地区的格式显示时分秒
toUTCString();//以特定于实现的格式显示完整的UTC日期
var dd=new Date();//Sun May 08 2016 19:14:36 GMT+0800 var dd1=dd.toDateString();//Sun May 08 2016 var dd2=dd.toTimeString();//19:14:36 GMT+0800 (ä¸å½æ åæ¶é´) var dd3=dd.toLocaleDateString();//2016/5/8 var dd4=dd.toLocaleTimeString();//下午7:14:36 var dd5=dd.toUTCString();//Sun, 08 May 2016 11:14:36 GMT
参考自JavaScript高级程序设计【第三版】