Date对象和Math对象

日期Date对象
一、静态方法
1、Date.now() ES5新增 不支持传参
a、返回当前时间距离1970年1月1日0点UTC的毫秒数 Number数字类型

console.log(Date.now());//1468297046050
console.log(Date.now('2016,1,1'));//1468297046050
console.log(typeof Date.now());//'number'

b、不支持该方法的浏览器中可以使用+操作符吧Date对象转换成数字

console.log(new Date());//Tue Jul 12 2016 12:21:33 GMT+0800 (中国标准时间)
console.log(+new Date());//1468297293433
console.log(+new Date(2000,1,1));//949334400000

2、Date.parse()
a、解析一个日期字符串,参数是一个包含待解析的日期和时间的字符串,返回从1970年1月1日
0点到给定日期的毫秒数
b、参数支持的格式 如果字符串无法识别,将返回NaN,浏览器不支持不表示日期只表示时间的字符串格式
b1、日期时间字符串格式: YYYY-MM-DDTHH:mm:ss.sssZ
YYYY 公历中年的十进制数字,如果这个参数值在0-99之间,则向它加上1900
符号 - 在字符串中直接以“-”(破折号)出现两次
MM 一年中的月份,从01(一月)到12(十二月)
DD 月份中的日期,从01到31
T 在字符串中直接以“T”出现,用来表明时间元素的开始
HH 用两个十进制数字表示的,自午夜0点以来的小时数
: 在字符串中直接以“:”(冒号)出现两次
mm 是用两个十进制数字表示的,自小时开始以来的分钟数
ss 是用两个十进制数字表示的,自分开始以来的秒数
. 在字符串中直接以“.”(点)出现
sss 是用三个十进制数字表示的,自秒开始以来的毫秒数
Z 是时区偏移量,由(“Z”(指UTC)或“+”或“-”)和后面跟着的时间表达式hh:mm组成
b2、‘月/日/年’ 如6/13/2004
b3、‘月 日,年’ 如January 12,2004或Jan 12,2004
b4、‘星期 月 日 年 时:分:秒 时区’ Tue May 25 2004 00:00:00 GMT-0700

console.log(Date.parse('6/13/2004'));//1087056000000
console.log(Date.parse('January 12,2004'));//1073836800000
console.log(Date.parse('Tue May 25 2004 00:00:00 GMT-0700'));//1085468400000
console.log(Date.parse('2004-05-25T00:00:00'));//1085443200000
console.log(Date.parse('2016'));//1451606400000
console.log(Date.parse('T00:00:00'));//NaN
console.log(Date.parse());//NaN

3、Date.UTC()
Date.UTC(year,month,day,hours,minutes,seconds,ms),year和month参数是固定的,其余参数可选

console.log(Date.UTC(1970));//NaN
console.log(Date.UTC(1970,0));//0
console.log(Date.UTC(1970,0,2));//86400000
console.log(Date.UTC(1970,0,1,1));//3600000
console.log(Date.UTC(1970,0,1,1,59));//714000
console.log(Date.UTC(1970,0,1,1,59,30));//717000
Date.UTC(2019,01,13);// 1550016000000
Date.parse('2019-02-13') // 1550016000000

二、构造函数
1、Date() 构造函数可以像一个函数一样调用,忽略传参,返回当前日期和时间的一个字符串

Date() // "Wed Feb 13 2019 15:56:34 GMT+0800 (中国标准时间)"
console.log(Date('2016/1/1')) / "Wed Feb 13 2019 15:56:34 GMT+0800 (中国标准时间)"

2、使用new操作符,不带参数时,将根据当前时间和日期创建一个Date对象

new Date() // 
Wed Feb 13 2019 16:09:04 GMT+0800 (中国标准时间)
new Date // 
Wed Feb 13 2019 16:09:04 GMT+0800 (中国标准时间)
console.log(typeof new Date());//'object'

3、Date函数可接受一个数字参数,该参数表示设定时间与1970年1月1日0点之间的毫秒数

console.log(new Date(0));//Thu Jan 01 1970 08:00:00 GMT+0800 (中国标准时间)
new Date(86400000) //Fri Jan 02 1970 08:00:00 GMT+0800 (中国标准时间)
console.log(typeof new Date(0));//object

4、Date()函数可接受一个字符串参数,参数形式类似于Date.parse()方法。
但parse()方法返回的是一个数字,而Date()函数返回的是一个对象

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

5、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'

三、常用方法
toString() 返回本地时区的日期字符串
toLocaleString() toString()方法的本地化转换
toUTCString() 返回UTC时间的日期字符串
toISOString() 返回Date对象的标准的日期时间字符串格式的字符串
toJSON() 返回结果同toISOString
toDateString() 返回Date对象的日期部分的字符串
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').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').toJSON());//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').toLocaleDateString());//2016/7/12

valueOf() 同getTime()
getTime() ES5之前,可以使用getTime()方法(new Date()).getTime()实现Date.now()
getYear() 返回距离1990年的年数
getFullYear() 返回4位数的年份
getMonth() 返回月份0-11
getDate() 返回第几天0-31
getDay() 返回星期几0-6
getHours() 返回小时0-23
getMinutes() 返回分钟值0-59
getSeconds() 返回秒值0-59
getMilliseconds() 返回毫秒值0-999

set方法基本与get方法相对应,set方法传入类似于Date.UTC()的参数,
返回调整后的日期的内部毫秒数
[注意]星期只能获取,不能设置
setTime()使用毫秒的格式,设置一个Date对象的值粗体字

var d = new Date('2016-07-12T10:00');
console.log(d.setTime(86400000),d);//86400000 Fri Jan 02 1970 08:00:00 GMT+0800 (中国标准时间)

setYear() 设置年份(已过时)

var d = new Date('2016-07-12T10:00');
console.log(d.setYear(2000),d,d.getYear());//963396000000 Wed Jul 12 2000 18:00:00 GMT+0800 (中国标准时间) 100

setFullYear() 设置年份(4位数),以及可选的月份值和日期值
setMonth() 设置月份(0-11),以及可选的日期值
setDate() 设置第几天(1-31)

var d = new Date('2016-07-12T10:00');
console.log(d.setFullYear(2015,1,1),d.getFullYear());//1422784800000 2015
console.log(d.setMonth(2),d.getMonth());//1425204000000 2
console.log(d.setDate(20),d.getDate());//1426845600000 20
console.log(d.toLocaleString());//2015/3/20 下午6:00:00

setHours() 设置小时值(0-23),以及可选的分钟值、秒值及毫秒值
setMinutes() 设置分钟值(0-59),以及可选的秒值及毫秒值
setSeconds() 置秒值(0-59),以及可选的毫秒值
setMilliseconds() 设置毫秒值(0-999)

var d = new Date('2016-07-12T10:20:30');
console.log(d.setHours(1,2,3),d.getHours());//1468256523000 1
console.log(d.setMinutes(2,3),d.getMinutes());//1468256523000 2
console.log(d.setSeconds(3),d.getSeconds());//1468256523000 3
console.log(d.toLocaleTimeString())//上午1:02:03

Math对象
一、常量
Math.E 自然对数的底数,即常量e的值(约等于2.71828)
Math.LN2 2的自然对数(约等于0.693)
Math.LN10 10的自然对数(约等于2.303)
Math.LOG2E 以2为底e的对数(约等于1.443)
Math.LOG10E 以10为底e的对数(约等于0.434)
Math.PI π的值(约等于3.14)
Math.SQRT2 2的平方根(约等于1.414)
Math.SQRT1_2 1/2的平方根,即2的平方根的倒数(约等于0.707)

二、函数
涉及到Number()隐式类型转换。若超出范围,将返回NaN

Math.max() 返回最大值,参数任意,如果任意一个参数是NaN或不可转换为数字,则返回NaN
Math.min() 返回最小值,参数任意,如果任意一个参数是NaN或不可转换为数字,则返回NaN
Math.ceil() 向上取整
Math.floor() 向下取整
Math.round() 四舍五入取整
Math.random() 返回0-1之间的随机数
Math.abs() 绝对值

Math.sin(x) 返回x的正弦值,返回值介于-1到1之间
Math.cos(x) 返回x的余弦值,返回值介于-1到1之间
Math.tan(x) 返回x的正切值
Math.asin(x) 返回x的反正弦值,回值介于-派/2到派/2弧度之间(x必须是-1到1之间的数)
Math.acos(x) 返回x的反余弦值,返回值介于0到派弧度之间(x必须是-1到1之间的数)
Math.atan(x) 返回x的反正切值,返回值介于-派/2到派/2弧度之间
Math.atan2(y,x) 返回y/x的反正切值,返回值介于-派到派可以将y看做一个点的y坐标,x看做点的x坐标

console.log(Math.sin(30*Math.PI/180));//0.49999999999999994    
console.log(Math.cos(60*Math.PI/180));//0.5000000000000001
console.log(Math.tan(45*Math.PI/180));//0.9999999999999999    
console.log(Math.asin(1)*180/Math.PI);//90
console.log(Math.acos(1)*180/Math.PI);//0
console.log(Math.atan(1)*180/Math.PI);//45
console.log(Math.atan2(1,1)*180/Math.PI);//45

Math.exp(num) 返回Math.E的num次幂,即enum

console.log(Math.exp(0));//1
console.log(Math.exp(1));//2.718281828459045

Math.log(num) 返回num的自然对数,logenum(num必须是大于等于0的数)

console.log(Math.log(1));//0
console.log(Math.log(Math.E));//1

Math.sqrt(num) 返回num的平方根(x必须是大于等于0的数)

console.log(Math.sqrt(100));//10
console.log(Math.sqrt(1));//1

Math.pow(num,power) 返回num的power次幂

console.log(Math.pow(10,2));//100
console.log(Math.pow(100,1/2));//10
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值