最近工作中经常会用到,需要前端去获取时间,然后进行一些处理,自己发现都忘个差不多了,就想着重新回顾一遍.
JavaScript中有Date对象,Date对象用于处理时间和日期.
创建Date对象的语法:
var myDate = new Date();
Date对象会自动把当前时间和日期保存为其初始值.
Date() 返回当日的日期时间
getDate() 从Date对象返回一个月中的某一天(1~31)
getDay() 从Date对象返回一周中的某一天(0~6)
getMonth() 从Date对象返回月份(0~1)
getFullYear() 从Date对象以四位数字返回年份
getYear() 获取时间戳的年份,请使用getFullYear()方法替代
getHours() 返回Date对象的小时(0~23)
getMinutes() 返回Date对象的分钟(0~59)
getSeconds() 返回Date对象的秒数(0~59)
getMilliseconds() 返回Date对象的毫秒(0~999)
getTime() 返回1970年1月1日至今的毫秒数
getTimezoneOffset() 返回本地时间与格林威治标准时间(GMT)的分钟差
parse() 返回1970年1月1日午夜到指定日期(字符串)的毫秒数
setDate() 设置Date对象中月的某一天(1~31)
setMonth() 设置Date对象中的月份(0~11)
setFullYear() 设置Date对象中的年份(四位数字)
setYear() 请使用setFullYear()方法替代
setHours() 设置Date对象中的小时(0~23)
setMinutes() 设置Date对象中的分钟(0~59)
setSeconds() 设置Date对象中的秒钟(0~59)
setMinlliseconds() 设置Date对象中的毫秒(0~999)
toString() 把Date对象转换为字符串
toTimeString() 把Date对象的时间部分转换为字符串
toDateString() 把Date对象的日期部分转换为字符串
toLocaleString() 根据本地时间格式,把Date对象转换成字符串
toLocaleTimeString() 根据本地时间格式,把Date对象的时间部分转换成字符串
toLocaleDateString() 根据本地时间格式,把Date对象的日期部分转换成字符串
这其中,需要注意的是,从Date对象中获取到的月份时间,是从0开始的,比如下面这段代码
var d = new Date(); console.log(d); //Thu Feb 09 2017 16:44:50 GMT+0800 (中国标准时间) var m = d.getMonth(); console.log(m); //1
而通过new Date()创建一个特定时间时,则需要将月份从1开始算(下面有例子)
首先着重讲一下Date()
创建Date对象时,当我们需要创建一个特定的时间时,其有下面几种方式:
new Date("month dd,yyyy hh:mm:ss");
new Date("month dd,yyyy");
new
Date(yyyy,mth,dd,hh,mm,ss);
new Date(yyyy,mth,dd);
new Date(ms);
其中,
month:用英文表示月份名称,从January到December
mth:用整数表示月份,从0-11(1月到12月)
dd:表示一个月中的第几天,从1到31
yyyy:四位数表示的年份
hh:小时数,从0(午夜)到23(晚11点)
mm:分钟数,从0到59的整数
ss:秒数,从0到59的整数
ms:毫秒数,为大于等于0的整数
注意最后一种形式,参数表示的是需要创建的时间和GMT时间1970年1月1日之间相差的毫秒数。
示例如下:
new Date("January 12,2006 22:19:35"); new Date("January 12,2006"); new Date(2006,0,12,22,19,35); new Date(2006,0,12); new Date(1137075575000);
而getDay()是从Date对象中返回一周中的第几天,其返回值为0~6,0表示星期日
之前需要自己写一个日历,当时就遇到了个很尴尬的问题,不知道该怎么算当月有多少天(其实当时连每月的1号是星期几都忘了怎么获取了,后来重新看了遍Date对象,才用的getDay()),其实计算某一个月有多少天,有一个特别好的方法.
很少有人知道创建时间的时候,当日期的天数设置成0时,例如new Date(2017,3,0)时,其真正设置的时间,是这个月前一个月的最后一天,根据这种情况,我们可以如下写:
var d = new Date(2017,3,0); console.log(d.getDate()); //28
由此可以计算出二月为28天
此时打印出来的就是当月的总共有多少天了,非常方便了......