什么是: 封装一个时间,提供操作时间的API
何时: 只要存储时间,都要用Date对象
如何:
创建: 4种:
1. 创建日期对象,并自动获得当前客户端系统时间
var now=new Date();
2. 创建日期对象,并封装自定义时间:
var date=new Date("yyyy/MM/dd hh:mm:ss");
var date=new Date(yyyy,MM-1,dd,hh,mm,ss)
3. 复制一个日期对象:
问题: 日期对象的计算都是直接修改原日期对象
计算后无法保留计算前的旧时间
解决: 今后如果需要同时保留开始和结束时间时
都要先将开始时间复制一个副本,再用副本计算
var date1=new Date(...);
var date2=new Date(date1);
4. 用毫秒数创建日期对象:
Date对象的原理:
Date对象中保存了一个巨大的毫秒数
起始时间为: 1970年1月1日0点至今的毫秒数
var date=new Date(ms);
两个日期对象可相减: 得到毫秒差
日期API
单位: FullYear Month Date Day
Hours Minutes Seconds Milliseconds
API: 1. 每个单位都有一个对儿get/set方法
比如: var year=date.getFullYear()//获取单位的值
date.setFullYear(year)//设置单位的值
特殊: Day没有set方法
2. 命名: 年月日星期没有s结尾
时分秒毫秒都有s结尾
3. 取值范围: 只有Date从1~31
不考虑FullYear, 其余都是从0开始,到进制-1结束
Month: 0~11 总比现实中小1, 需要修正
Date: 1~31 不用修正
Day: 0~6 不用修正
Hours: 0~23 不用修正
Minutes/Seconds: 0~59 不用修正
日期计算:
1. 计算两个日期的时间差: 两日期相减,得毫秒数,再换算
2. 对任意单位做加减: 3步:
1. 取分量: var d=date.getDate();
2. 做加减: d+=60
3. 放回去: date.setDate(d);
强调: 所有set方法可自动调整时间进制
其实可简写为: date.setDate(date.getDate()+60)
转字符串:
date.toString() -> 当地时间的完整时间格式
date.toLocaleString() ->当地时间的简化版格式
date.toLocaleDateString() -> 当地时间的日期部分
date.toLocaleTimeString() -> 当地时间的时间部分
date.toGMTString() -> 标准时区的标准时间
作业: 自定义format函数: 2_format.html