# Date对象

Date对象是用来处理日期和时间,Date 对象基于1970年1月1日(世界标准时间)起的毫秒数。

# 创建日期对象

通过实例化Date来创建日期对象,传入参数的形式有以下几种

new Date()   
new Date(1543299465541);    //参数为时间戳返回时间戳对应的时间对象   (时间戳是从1970年1月1日开始的毫秒数 )
new Date('December 17, 1996 03:24:00');   //传入日期的字符串形式
new Date('1995-12-17T03:24:00');      
new Date(1996, 02, 07);           //传入年月日,不用加引号
new Date(1996, 02, 07, 3, 24, 0);   //  穿入年,月,日,时,分,秒


new Date();           //  不传参数返回当前时间对象 Tue Nov 27 2018 14:12:40 GMT+0800 (中国标准时间)
new Date(value);      //参数为时间戳返回时间戳对应的时间对象   (时间戳是从1970年1月1日开始的毫秒数 )
new Date(dateString);    //表示日期的字符串值。该字符串应该能被 Date.parse() 方法识别
new Date(year, month[, day[, hour[, minutes[, seconds[, milliseconds]]]]]);
// year代表年份的整数值 month代表月份值(从0-11) day代表一个月中第几天  其余依次分别代表小时,分钟,秒,毫秒

# Date上的方法

  • Date.now() 返回自1970-1-1 00:00:00 UTC (世界标准时间)至今所经过的毫秒数。
  • Date.parse() 解析一个表示日期的字符串,并返回从 1970-1-1 00:00:00 所经过的毫秒数。

# 获取日期信息的方法

方法 含义
getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)
getDay() 从 Date 对象返回一周中的某一天 (0 ~ 6)
getMonth() 从 Date 对象返回月份 (0 ~ 11)
getFullYear() 从 Date 对象以四位数字返回年份
getHours() 返回 Date 对象的小时 (0 ~ 23)
getMinutes() 返回 Date 对象的分钟 (0 ~ 59)
getSeconds() 返回 Date 对象的秒数 (0 ~ 59)
getMilliseconds() 返回 Date 对象的毫秒(0 ~ 999)
getTime() 返回 1970 年 1 月 1 日至今的毫秒数
getTimezoneOffset() 返回本地时间与格林威治标准时间 (GMT) 的分钟差

# 设置日期的方法

方法 含义
setDate() 设置 Date 对象中月的某一天 (1 ~ 31)
setMonth() 设置 Date 对象中月份 (0 ~ 11)
setFullYear() 设置 Date 对象中的年份(四位数字)
setHours() 设置 Date 对象中的小时 (0 ~ 23)
setMinutes() 设置 Date 对象中的分钟 (0 ~ 59)
setSeconds() 设置 Date 对象中的秒钟 (0 ~ 59)
setMilliseconds() 设置 Date 对象中的毫秒 (0 ~ 999)
setTime() 以毫秒设置 Date 对象
setUTCDate() 根据世界时设置 Date 对象中月份的一天 (1 ~ 31)
setUTCMonth() 根据世界时设置 Date 对象中的月份 (0 ~ 11)
setUTCFullYear() 根据世界时设置 Date 对象中的年份(四位数字)
setUTCHours() 根据世界时设置 Date 对象中的小时 (0 ~ 23)
setUTCMinutes() 根据世界时设置 Date 对象中的分钟 (0 ~ 59)
setUTCSeconds() 根据世界时设置 Date 对象中的秒钟 (0 ~ 59)
setUTCMilliseconds() 根据世界时设置 Date 对象中的毫秒 (0 ~ 999)

# 获取时间戳的方法

var timestamp1 = Date.parse(new Date()); // 结果:1477808630000 不推荐这种办法,毫秒级别的数值被转化为000

var timestamp2 = (new Date()).valueOf(); // 结果:1477808630404 通过valueOf()函数返回指定对象的原始值获得准确的时间戳值

var timestamp3 = new Date().getTime(); // 结果:1477808630404 ,通过原型方法直接获得当前时间的毫秒值,准确

var timetamp4 = Number(new Date()) ; //结果:1477808630404 ,将时间转化为一个number类型的数值,即时间戳

Date.now()           //返回当前时间的时间戳

# 课堂实例

* 网页动态显示当前时间
* 倒计时
* 网页版闹钟的实现
* 根据日期的不同时间段,做问候语:早上8:00-12:00 :“早上好!欢迎登陆系统” 中午12:00-14:00:“中午好!该休息了” 下午14:00-18:00:“下午好!欢迎登陆系统” 晚上19:00-00:00:“晚上好!XXXXXXXXX”
* 网页中实现一个计算当年还剩多少时间的倒数计时程序,要求网页上实时动态显示“××年还剩××天××时××分××秒”