目录
- 简述
- 获取毫秒的几种转换方法
1.Date.parse()
2.Date.UTC()
3.Date.now()
- 常用的几种方法
简述
- 要创建一个日期对象,使用new操作符和Date构造函数即可,例:
var now = new Date()
在调用Date构造函数而不传递参数的情况下,新创建的对象自动获得当前的日期和时间。如果想根据特定的日期和时间创建对象,可以传入特定日期或者传入该日期的毫秒数,获取毫秒数有两个方法:Date.parse()、Date.UTC()和Date.now()。
获取毫秒的几种方法
1. Date.parse()
这个方法接收一个表示日期的字符串参数,返回的是毫秒数。
接收日期格式:
1.月/日/年 如05/25/2004或者2004/05/25
2.英文月 日,年 如May 25, 2004
3.如果有时分秒:YYYY-MM-DD HH:MM:SS 如2004-05-25 00:00:00
注意:格式是固定的,使用其他格式可能会导致错误的结果,例:
var time = Date.parse(05/25/2004) // 1085414400000 var time = Date.parse('2004/05/25') // 1085414400000 var time = Date.parse('2004-05-25 00:00:00') // 1085414400000 var time = Date.parse('2004-05-25') // 1085443200000 我们会发现var time = Date.parse('2004-05-25')这个返回值跟其他的都不一样, new Date(Date.parse('2004-05-25'))返回值为Tue May 25 2004 08:00:00 GMT +0800 (中国标准时间)也就是获取的时间是凌晨八点整的时候,而其他的都是Tue May 25 2004 00:00:00 GMT+0800 (中国标准时间)都是零时零分零秒,所以这里就出现了误差
总结:如果是用Date.parse()或者new Date()这两种方法的时候时间格式一定是用'/'分开而不是'-',除非时间格式中有时分秒的情况。
如果直接将日期的字符串传递给new Date(),也会在后台调用Date.parse(),所以想要获取指定日期的时间可以直接这么写:
var time = new Date('2004/05/25') // Tue May 25 2004 00:00:00
GMT+0800 (中国标准时间),就不用写new Date(Date.parse('2004/05/25'))
这两者是等价的
2. Date.UTC()
这个方法同样也是返回毫秒数,不过它接收的参数是数字不是字符串,并且月份是基于0的月份(一月是0,二月是1,以此类推),只有前两个参数是必须的,也就是年和月,如果没有日则默认为1日,如果省略其他参数则默认为0。例:
var time = new Date(Date.UTC(2004,0)) // Thu Jan 01 2004 08:00:00
GMT+0800 (中国标准时间)(显示的是凌晨8点不是0点)
注意:new Date()默认调用Date.parse(),而不是Date.UTC(),而且后者也很少用到
3.Date.now()
这个方法是用来获取当前时间的毫秒数,也可以理解为new Date().getTime()的简写,这两种写法是等价的。
常用的几种方法
getTime() : 返回表示日期的毫秒数
getFullYear(): 返回四位数的年份
getMonth():返回日期中的月份(其中0表示一月,1表示二月,以此类推)
getDate():返回月份中的天数
getDay():返回星期几(其中0表示星期日,6表示星期六)
getHours():返回小时
getMinutes():返回分钟数
getSeconds():返回秒数
总结:1.获取毫秒数有三种方法Date.parse()、Date.UTC()和Date.now()。前面两种可以获取指定日期的毫秒数,最后一种只能获取当前时间毫秒数。
2.获取时间new Date(),参数可以直接传入日期,也可以传入毫秒数,因为传入日期后台会调用Date.parse(),转为毫秒数。
3.传入Date.parse()和new Date()的参数必须是字符串格式最好中间用'/'除了有时分秒的情况可以用'-',传入Date.UTC()的参数是数字。
网友评论