仅个人学习的一些要点,欢迎指正,谢谢!参考资料
参数
作为普通函数调用,即使有参数,仍返回当时时间
作为构造函数是,可接受多种参数
new Date(milliseconds)
new Date(datestring) //datestring能被Date.parse()解析
-
new Date(year, month [, day, hours, minutes, seconds, ms])//仅提供一个参数,将视为毫秒
> year:四位年份,如果写成两位数,则加上1900 > month:表示月份,0表示一月,11表示12月 > date:表示日期,1到31 > hour:表示小时,0到23 > minute:表示分钟,0到59 > second:表示秒钟,0到59 > ms:表示毫秒,0到999
日期的运算
类型转换时,Date对象的实例如果转为数值,则等于对应的毫秒数;如果转为字符串,则等于对应的日期字符串。所以,两个日期对象进行减法运算,返回的就是它们间隔的毫秒数;进行加法运算,返回的就是连接后的两个字符串。
var d1=new Date(2000,0,1);
var d2=new Date("2000/01/01");
console.log(typeof(d1+d2));//string
console.log(d1-d2);//0
Date对象的静态方法
-
Date.now()
Date.now方法返回当前距离1970年1月1日 00:00:00 UTC的毫秒数(Unix时间戳乘以1000)
-
Date.UTC()
默认情况下,Date对象返回的都是当前时区的时间。Date.UTC方法可以返回UTC时间(世界标准时间)。该方法接受年、月、日等变量作为参数,返回当前距离1970年1月1日 00:00:00 UTC的毫秒数。
-
Date.parse()
Date.parse方法用来解析日期字符串,返回距离1970年1月1日 00:00:00UTC的毫秒数。
Date实例对象的方法
to类:从Date对象返回一个字符串,表示指定的时间。
get类:获取Date对象的日期和时间。
set类:设置Date对象的日期和时间。
-
to类
Date.prototype.toString()
Date.prototype.toUTCString()//返回UTC时间,也就是比北京时间晚8个小时
Date.prototype.toISOString()//返回UTC时间的ISO写法
Date.prototype.toJSON()//返回一个符合JSON格式的ISO格式的日期字符串,与toISOString方法的返回结果完全相同。
Date.prototype.toDateString()//返回日期字符串
Date.prototype.toTimeString()//返回时间字符串
Date.prototype.toLocaleDateString()//返回日期的当地写法
Date.prototype.toLocaleTimeString()//返回时间的当地写法
var d = new Date(2013, 0, 1); d // "Tue Jan 01 2013 00:00:00 GMT+0800 (CST)" d.toString() // "Tue Jan 01 2013 00:00:00 GMT+0800 (CST)" d.toUTCString() // "Mon, 31 Dec 2012 16:00:00 GMT" d.toISOString() // "2012-12-31T16:00:00.000Z" d.toJSON() // "2012-12-31T16:00:00.000Z" d.toDateString() // "Tue Jan 01 2013" d.toTimeString() // "00:00:00 GMT+0800 (CST)" d.toLocaleDateString() // 中文版浏览器为"2013/1/1" d.toLocaleTimeString() // 中文版浏览器为"上午12:00:00"
-
get类
getTime():返回距离1970年1月1日00:00:00的毫秒数,等同于valueOf方法。
getDate():返回实例对象对应每个月的几号(从1开始)。
getDay():返回星期几,星期日为0,星期一为1,以此类推。
getYear():返回距离1900的年数。
getFullYear():返回四位的年份。
getMonth():返回月份(0表示1月,11表示12月)。
getHours():返回小时(0-23)。
getMilliseconds():返回毫秒(0-999)。
getMinutes():返回分钟(0-59)。
getSeconds():返回秒(0-59)。
getTimezoneOffset():返回当前时间与UTC的时区差异,以分钟表示,返回结果考虑到了夏令时因素。Date对象还提供了这些方法对应的UTC版本,用来返回UTC时间。
getUTCDate()
getUTCFullYear()
getUTCMonth()
getUTCDay()
getUTCHours()
getUTCMinutes()
getUTCSeconds()
getUTCMilliseconds() -
set类
setDate(date):设置实例对象对应的每个月的几号(1-31),返回改变后毫秒时间戳。
setYear(year): 设置距离1900年的年数。
setFullYear(year [, month, date]):设置四位年份。
setHours(hour [, min, sec, ms]):设置小时(0-23)。
setMilliseconds():设置毫秒(0-999)。
setMinutes(min [, sec, ms]):设置分钟(0-59)。
setMonth(month [, date]):设置月份(0-11)。
setSeconds(sec [, ms]):设置秒(0-59)。
setTime(milliseconds):设置毫秒时间戳。
setUTCDate()
setUTCFullYear()
setUTCHours()
setUTCMilliseconds()
setUTCMinutes()
setUTCMonth()
setUTCSeconds() -
Date.prototype.valueOf()
valueOf方法返回实例对象距离1970年1月1日00:00:00 UTC对应的毫秒数,该方法等同于getTime方法。
问题
一
Date.UTC(1970,8,9)
//21686400000
Date.parse("1970-09-09")
//21686400000
Date.parse("1970-9-9")
//21657600000
Date.parse("1970/09/09")
//21657600000
Date.UTC()以格林尼治标准时间为参照,Date.parse()以本地时间为参照
注意,在ES5之中,如果日期采用连词线(-)格式分隔,且具有前导0,JavaScript会认为这是一个ISO格式的日期字符串,导致返回的时间是以UTC时区计算的。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。