console.log(new Date(0));//Thu Jan 01 1970 08:00:00 GMT+0800 (中国标准时间) console.log(new Date(86400000));//Fri Jan 02 1970 08:00:00 GMT+0800 (中国标准时间) console.log(typeof new Date(0));//object
【3】Date()函数可接受一个字符串参数,参数形式类似于Date.parse()方法。但parse()方法返回的是一个数字,而Date()函数返回的是一个对象
new Date(datestring); console.log(new Date('6/13/2004'));//Sun Jun 13 2004 00:00:00 GMT+0800 (中国标准时间) console.log(Date.parse('6/13/2004'));//1087056000000 console.log(typeof new Date(6/13/2004));//object console.log(typeof Date.parse(6/13/2004));//number
关于标准的日期时间字符串中前置0的处理,也类似于Date.parse()方法,若有前置0,则相当于UTC时间,若没有,则相当于本地时间。其余情况一般都为本地时间
console.log(new Date('7/12/2016'));//Tue Jul 12 2016 00:00:00 GMT+0800 (中国标准时间) console.log(new Date('2016-7-12'));//Tue Jul 12 2016 00:00:00 GMT+0800 (中国标准时间) console.log(new Date('2016-07-12'));//Tue Jul 12 2016 08:00:00 GMT+0800 (中国标准时间)
【4】Date()函数可接受参数形式类似于Date.UTC()方法的参数,但Date.UTC()方法返回是一个毫秒数,且是UTC时间,而Date()函数返回是一个对象,且是本地时间
console.log(new Date(2016,7,12));//Fri Aug 12 2016 00:00:00 GMT+0800 (中国标准时间) console.log(+new Date(2016,7,12));//1470931200000 console.log(typeof new Date(2016,7,12));//'object' console.log(Date.UTC(2016,7,12));//1470960000000 console.log(typeof Date.UTC(2016,7,12));//'number'
[注意]使用参数类似于Date.parse()函数的方法时,如果日期对象超出范围,浏览器会自动将日期计算成范围内的值;使用参数类似于Date.UTC()函数的方法时,如果日期对象超出范围,浏览器会提示Invalid Date
console.log(new Date(2016,7,32));//Thu Sep 01 2016 00:00:00 GMT+0800 (中国标准时间) console.log(new Date(2016,8,1));//Thu Sep 01 2016 00:00:00 GMT+0800 (中国标准时间) console.log(new Date('2016-8-32'));//Invalid Date console.log(new Date('2016-9-1'));//Thu Sep 01 2016 00:00:00 GMT+0800 (中国标准时间)
实例方法
Date对象没有可以直接读写的属性,所有对日期和时间的访问都需要通过方法。Date对象的大多数方法分为两种形式:一种是使用本地时间,一种是使用UTC时间,这些方法在下面一起列出。例如,get[UTC]Day()同时代表getDay()和getUTCDay()
Date对象一共有46个实例方法,可以分为以下3类:to类、get类、set类
【to类】
to类方法从Date对象返回一个字符串,表示指定的时间
toString()
返回本地时区的日期字符串
toUTCString()
返回UTC时间的日期字符串
toISOString()
返回Date对象的标准的日期时间字符串格式的字符串
toTimeString()
返回Date对象的时间部分的字符串
toJSON()
返回一个符合JSON格式的日期字符串,与toISOString方法的返回结果完全相同
console.log(new Date('2016-7-12').toString());//Tue Jul 12 2016 00:00:00 GMT+0800 (中国标准时间) console.log(new Date('2016-7-12').toUTCString());//Mon, 11 Jul 2016 16:00:00 GMT console.log(new Date('2016-7-12').toISOString());//2016-07-11T16:00:00.000Z console.log(new Date('2016-7-12').toDateString());//Tue Jul 12 2016 console.log(new Date('2016-7-12').toTimeString());//00:00:00 GMT+0800 (中国标准时间) console.log(new Date('2016-7-12').toJSON());//2016-07-11T16:00:00.000Z
toLocaleString()
toString()方法的本地化转换
toLocaleTimeString()
toTimeString()方法的本地化转换
toLocaleDateString()
toDateString()方法的本地化转换
console.log(new Date('2016-7-12').toString());//Tue Jul 12 2016 00:00:00 GMT+0800 (中国标准时间) console.log(new Date('2016-7-12').toLocaleString());//2016/7/12 上午12:00:00 console.log(new Date('2016-7-12').toDateString());//Tue Jul 12 2016 console.log(new Date('2016-7-12').toLocaleDateString());//2016/7/12 console.log(new Date('2016-7-12').toTimeString());//00:00:00 GMT+0800 (中国标准时间) console.log(new Date('2016-7-12').toLocaleTimeString());//上午12:00:00
【get类】
Date对象提供了一系列get类方法,用来获取实例对象某个方面的值
在介绍get类方法之前,首先要介绍valueOf()方法
valueOf()
返回距离1970年1月1日0点的毫秒数
因此,可以方便地使用比较运算符来比较日期值
var date1 = new Date(2007,0,1); var date2 = new Date(2007,1,1); console.log(date1 > date2);//false console.log(date1 < date2);//true
getTime()
返回距离1970年1月1日0点的毫秒数,同valueOf()
在ECMAScript5之前,可以使用getTime()方法实现Date.now()
Date.now = function(){ return (new Date()).getTime() }
getTimezoneOffset()
返回当前时间与UTC的时区差异,以分钟表示(8*60=480分钟),返回结果考虑到了夏令时因素
console.log(new Date('2016-7-12').valueOf());//1468252800000 console.log(new Date('2016-7-12').getTime());//1468252800000 console.log(new Date('2016-7-12').getTimezoneOffset());//-480
getYear()
返回距离1900年的年数(已过时)
get[UTC]FullYear()
返回年份(4位数)
get[UTC]Month()
返回月份(0-11)
get[UTC]Date()
返回第几天(1-31)
get[UTC]Day()
返回星期几(0-6)
get[UTC]Hours()
返回小时值(0-23)
get[UTC]Minutes()
返回分钟值(0-59)
get[UTC]Seconds()
返回秒值(0-59)
get[UTC]Milliseconds()
返回毫秒值(0-999)
[注意]通过标准日期时间格式字符串,且有前置0的形式的参数设置,设置的是UTC时间